相关疑难解决方法(0)

如何修复Visual Studio编译错误,"处理器架构之间不匹配"?

我是Visual Studio 2010中的项目配置的新手,但我做了一些研究,但仍然不能完全解决这个问题.我有一个Visual Studio解决方案,其中包含引用C#DLL的C++ DLL.C#DLL引用了一些其他的DLL,一些在我的项目中,一些在外部.当我尝试编译C++ DLL时,我收到此警告:

警告MSB3270:正在构建"MSIL"的项目的处理器体系结构与参考"[internal C#dll]","x86"的处理器体系结构之间存在不匹配.

它告诉我去配置管理器来调整我的架构.C#DLL使用平台目标x86进行设置.如果我尝试将其更改为其他内容,例如Any CPU,则会抱怨,因为它所依赖的外部DLL之一具有平台目标x86.

当我查看Configuration Manager时,它将我的C#DLL平台显示为x86,将我的C++项目显示为Win32.这似乎是正确的设置; 当然我不希望我的C++项目的项目将平台设置为x64,这是唯一提供的其他选项.

我在这做错了什么?

.net visual-studio

442
推荐指数
7
解决办法
33万
查看次数

运行MSBuild无法读取SDKToolsPath

你好,我在运行一个NAnt脚本时会遇到一些问题,这个脚本曾用于正确构建基于.Net 2.0的网站,当使用VS2008及其相关工具进行编译时.我最近将所有项目/解决方案文件升级到VS2010,现在我的构建失败并出现以下错误:

[exec] C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(2249,9):错误MSB3086:任务无法使用S dkToolsPath""或注册表找到"sgen.exe"键"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A".确保已设置SdkToolsPath,并且该工具位于SdkToolsPath下正确的处理器特定位置,并且已安装Microsoft Windows SDK

现在,我已经在构建服务器上安装了Windows SDK的早期版本(.Net 3.5),并且安装了完整的.Net 4.0框架,但我没有遇到.Net 4.0特定版本的Windows SDK.

经过一些实验和研究,我终于设置了一个新的环境变量"SDKToolsPath"并将其指向我的Windows 6.0 sdk文件夹中的sgen.exe副本.这会产生相同的错误,但它让我注意到即使设置了SDKToolsPath环境变量(确认我可以在命令行"回显"它并且它具有预期的值),错误消息似乎表明它是没有被阅读(注意空引号).

我发现的大多数信息都是特定的.Net 3.5(或更早版本).还没有多少相关的4.0.搜索错误代码MSB3086也没有任何用处.知道这可能是什么吗?

斯科特

.net msbuild

128
推荐指数
8
解决办法
11万
查看次数

TFS 2010为.Net 3.5应用程序创建.Net 4.0 XmlSerializers DLL

我们有一个在Visual Studio 2010中运行的ASP.Net Web应用程序,目标是.Net 3.5.它是由TFS 2010构建的.这个Web应用程序有几个Web引用,因此构建会创建一个相关的XmlSerializers DLL.但是,此DLL是.Net 4.0程序集.

当我从构建运行此Web应用程序时,我收到错误:

无法加载文件或程序集"BLAH_BLAH_WEB_APPLICATION_NAME.XmlSerializers"或其中一个依赖项.此程序集由比当前加载的运行时更新的运行时构建,无法加载.

我们正在使用在TFS 2008下工作的msbuild .proj文件(使用构建定义中的"升级模板").我看到了这个问题,这一个,但使用特定的SGEN生成步骤那些提.我们不是.此外,建议的解决方案涉及硬编码7.0A SGen的路径,这只是......丑陋.

有没有办法强制TFS 2010构建将此XmlSerializers DLL编译为.Net 3.5程序集?

.net msbuild team-build visual-studio-2010

5
推荐指数
1
解决办法
2990
查看次数