2017-04-20 37 views
2

時,我得到的錯誤是如下...處理器架構不匹配構建C#MVC 5個網站

構建20-APR-2017 13點23分38秒C:\ WINDOWS \微軟.NET Framework \ v4.0.30319 \ Microsoft.Common.targets(1605,5): 警告MSB3270:處理器 架構中正在構建的項目「MSIL」與處理器 架構之間存在不匹配的參考「 System.Data「,」AMD64「。這種不匹配 可能會導致運行時失敗。請考慮通過配置 經理變更項目的目標 處理器架構,以便使其處理器架構的 項目和引用之間,或採取引用的依賴與有針對性的處理器 架構相匹配的 處理器架構的項目。 [d:_atlassian家庭\竹家\ XML數據\集結目錄\等等\等等\ blah.csproj]

我見過的其他人也有同樣的問題,但之後跟隨他們的解決方案,這並沒有改善我的情況(Processor architecture mismatch building error)。

在解決方案上運行MSBuild時,這發生在我們的CI服務器(Bamboo)上。

我很難過,有沒有人有任何想法?

+0

使用自定義構建系統從來不是一個大錯誤。您正在使用不正確的引用程序集,而不是由定位程序包提供並存儲在c:\ program files(x86)\ reference程序集中的程序集。可能是c:\ windows \ microsoft.net中的那些。這可能會導致很多額外的痛苦,但你可能會避免它。因爲機器與Windows Update保持同步。避免VS許可證是明智之舉,但三磅肉體愚蠢。這只是一個警告,繼續前進。 –

回答

3

首先,它確實只是一個警告。如果你只是處理Amd64依賴關係,它不應該傷害任何東西。如果將配置設置爲任何CPU,則爲Amd64編譯其中一個程序集時,這意味着它將不再在任何CPU上工作 - 它只能在64位CPU上工作。

由於您具有Amd64依賴性,因此技術上您的項目不是「任何CPU」兼容的。要使警告消失,實際上應該將項目從「任何CPU」更改爲「x64」。

如果你仍然要配置與「任何CPU」你的項目,你canedit您的項目文件,並添加該屬性組設置爲禁用警告:

<PropertyGroup><ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch></PropertyGroup> 

希望這可以幫助你。