【发布时间】:2011-03-03 20:46:47
【问题描述】:
我有一个带有托管 C++ 程序集的 .NET 解决方案,基于 VS2010 创建的 Targeting .NET 3.5。命令:
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln
在我的开发机器上编译解决方案。
在我的 BuildServer 上出现此错误:
构建失败。
"F:\CruiseControl.NET\Projects\MyProject\MyProject.sln" (默认目标)(1)-> “F:\CruiseControl.NET\Projects\MyProject\MyProject\MyProject.csproj” (默认目标)(2)-> "F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj" (默认目标)(3) ->
F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj(23,3): 错误 MSB4019:导入的项目 "C:\程序 文件\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" 没有找到。确认路径 在<Import>声明中是 正确,并且该文件存在于 磁盘。0 Warning(s) 1 Error(s)
在我的开发机器上声明的文件
“C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props”
存在。在我的构建服务器上没有。
当我尝试复制此文件(以及同一目录中的所有其他文件)时,发生了其他错误。所以这是错误的方式。
编辑:其他错误意味着:当我在构建服务器上复制文件“Microsoft.Cpp.Default.props”时,MSBuild 正在声明其他文件。这告诉我,仅仅复制丢失的文件并不是构建环境所期望的。我正在寻找一个 MSI/任何我可以安装在我的构建服务器上的包,并且任何 C++ 项目都将构建。安装 SDK 不是诀窍。或者我在 SDK 安装过程中做错了什么。或者仅使用 SDK 无法编译托管 C++ VS2010 解决方案。
我相信“其他错误”与我的问题无关。我的问题是:“如何正确设置我的构建环境”。 /编辑
到目前为止我做了什么:
- 我已经安装了最新的 Win7 SDK (http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx)
- 我的目标是 .net 3.5
- 我尝试过使用 Platform Toolset 属性 - 但它只是在玩
- 在我的解决方案中有一个托管 C++ 程序集(我的问题)
- 我使用的是 MSBuild 4.0,因为无法使用 MSBuild 3.5 编译新的 VS2010 项目文件
- 我正在使用 CC.NET。在命令行中的 CC.NET 和中编译失败。所以这不应该是 CC.NET 的问题。
是否有任何提示和技巧如何正确配置我的项目以在我的开发机器上使用 VS2010和在我的构建服务器上编译?还有什么要安装的吗(除了VS2010)?
谢谢,亚瑟
【问题讨论】:
-
问题:您是硬锁在 CC.Net 中,还是有能力考虑升级到其他东西?
-
我认为改用另一种持续集成技术不会改变任何事情。正如 Arthur 所说,使用普通 MSBuild 构建失败。这似乎是 .Net 4.0 与 SDK 7.0A 的联系比应有的更紧密的问题。
-
是的,没错。使用 MSBuild 在命令行上编译失败。 CC.NET 尚未参与。
标签: c++ msbuild build build-automation