2011-07-05 51 views
2

編譯後,我的解決方案有如下快照的警告。 enter image description hereVisual Studio C#參考警告

雙擊該警告將彈出一個問題,我不知道它是什麼。 enter image description here

如果你明白VS在說什麼,請分享。

回答

5

這看起來像您在解決方案中的不同項目中引用了您的依賴項的略微不同的版本。這意味着當你嘗試並運行你的項目時,如果你通過依賴關係中的類型引用任何引用,那麼你可能會得到意想不到的錯誤,因爲來自同一程序集的不同版本的類型被認爲是不同的。

例如

PROJECT1使用依賴性SomeAssembly.dll是1.0版 Project2的使用依賴性SomeAssembly.dll但在1.1版 Project2的具有PROJECT1作爲依賴

代碼在項目2次試圖通過如該類型是在SomeAssembly.dll定義的SomeType基準從其代碼到項目1的代碼。由於項目1來自不同版本的程序集,因此無法識別類型,因此項目1將引發錯誤。

您的問題可能比這更隱蔽,因爲大多數這種類型的錯誤可以被編譯器捕獲,但如果你有複雜的依賴關係或使用依賴注入編譯器可能不一定發現這樣的事情。

Visual Studio正在爲您提供有效的解決方法,將所有依賴關係重定向到特定的版本。恕我直言,我會避免採取修復,如果你可以自己手動修復它。

通過解決方案並檢查所有引用以確保它們全都與版本明智匹配,您會更好。您可能需要刪除並添加引用才能正常工作,但現在這樣做可以避免長期的意外問題。

+0

幾乎同意選擇你的接受答案。請簡單舉例說明「如果您將依賴關係中的類型引用爲任何引用,那麼來自同一程序集的不同版本的類型被認爲是不同的」。謝謝! –