我有一个使用VS2010创建的.NET解决方案,其中包含一个针对.NET 3.5的托管C++程序集。命令如下:
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln
我在我的开发机上编译了解决方案。
但是在我的构建服务器上出现了以下错误:
在我的开发机上,所述文件 "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" 存在。但在我的构建服务器上不存在。Build FAILED.
"F:\CruiseControl.NET\Projects\MyProject\MyProject.sln" (default target) (1) -> "F:\CruiseControl.NET\Projects\MyProject\MyProject\MyProject.csproj" (default target) (2) -> "F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj" (default target) (3) ->
F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj(23,3): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the<Import>
declaration is correct, and that the file exists on disk.
0 Warning(s) 1 Error(s)
当我尝试复制这些文件(以及同一目录中的所有其他文件)时,出现了其他错误。因此这是错误的方式。
编辑:其他错误意味着:当我在构建服务器上复制文件 "Microsoft.Cpp.Default.props" 时,MSBuild 在声称其他文件。这向我展示,仅复制缺少的文件并不符合构建环境的期望。我正在寻找一个 MSI/任何包,我可以在我的构建服务器上安装,并且任何 C++ 项目都将构建。安装 SDK 没有起作用。或者我在 SDK 安装期间做错了什么。或者使用 SDK 无法编译托管 C++ VS2010 解决方案。
我相信 "其他错误" 与我的问题无关。我的问题是:"如何正确设置我的构建环境"。
迄今为止我已经做了什么:
- 我已安装最新的Win7 SDK (链接)
- 我正在针对.net 3.5
- 我尝试过玩弄平台工具集属性-但那只是玩玩而已
- 在我的解决方案中有一个托管的C++程序集(我的问题)
- 我正在使用MSBuild 4.0,因为新的VS2010项目文件无法使用MSBuild 3.5编译
- 我正在使用CC.NET。编译失败在CC.NET 和 命令行上。所以这不应该是一个CC.NET的问题。
有没有任何技巧和窍门如何正确配置我的项目,在我的开发机上使用VS2010进行编译 和 在我的构建服务器上?除了VS2010外还需要安装其他内容吗?
谢谢,Arthur