2017-04-20 36 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> 

希望这可以帮助你。