2017-03-07 216 views
1

我們正在開發AnyCpu模式的應用程序。應用程序使用我們在運行時根據執行模式正確解析的本機庫。如何在Visual Studio 2015中忽略警告MSB3187

要編譯我們使用這兩個庫之一作爲接口不會改變,但我們得到警告MSB3187(這是正確的,但不適用於此)。

有沒有辦法禁用它?我們有一個政策,沒有警告,我們希望保持清潔的構建。

+0

http://stackoverflow.com/a/24425571/17034 –

+0

@HansPassant:你指着我的VS2017的答案嗎?我的意思是,你知道這是否會發生? –

+0

不,我在VS2015上測試過,效果很好。它今天發生。這些是你可以很容易地找到自己的東西,儘量不要無奈。 –

回答

1

作爲MSDN語句的MSBuild錯誤MSB3187:

當應用程序的目標平臺(處理器體系結構)被設定爲中性(MSIL)產生該警告和引用的組件不是中性的,或者如果該應用程序的架構不是中立的,依賴性是中立的。而且,如果兩者都不是平臺中立的,那麼他們的架構必須匹配。另外,應用程序體系結構和入口點組裝體系結構必須始終匹配。

由於您的應用程序與「任何CPU」兼容,但您應該對項目或.dll程序集(x86或x64)有依賴關係。 Visual Studio將爲此付出代價。

要使警告消失,應確保應用程序的目標平臺(處理器體系結構)與所有引用的程序集和入口點程序集體系結構相匹配。

希望這可以幫助你

+0

該屬性從VS中刪除警告,但不是從構建機器上的MSBuild編譯中刪除警告:\其他信息很明確,在運行時我們解析本地dll的正確版本並加載它。 –

+0

@Ignacio索勒加西亞,因爲我不能再現「MSB」錯誤來驗證屬性,我會更新我的答案禁用此屬性的部分,直到我可以驗證它。 –