2010-06-15 107 views
7

我有一个使用VS2010创建的托管C++构件定向.NET 3.5的.NET解决方案。命令:如何在构建服务器上构建VS2010 C++项目

%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln 

在我的开发机器上编译解决方案。

在我BuildServer我得到这个错误:

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) 

在我的dev的机器所要求的文件

"C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props"

存在。在我的构建服务器上没有。

当我尝试复制这些文件(以及所有其他文件在同一目录中)时发生其他错误。所以这是错误的。

编辑:其他错误意味着:当我在构建服务器上复制文件“Microsoft.Cpp.Default.props”时,MSBuild声明其他文件。这表明我只是做一个缺失文件的副本不是构建环境所期待的。我正在寻找MSI /我可以在我的构建服务器上安装的任何软件包,并且任何C++项目都将构建。安装SDK没有窍门。或者我在SDK安装过程中做了错误的事情。或者仅使用SDK编译托管C++ VS2010解决方案是不可能的。

我相信“其他错误”与我的问题无关。我的问题是:“我如何正确设置我的编译环境”。 /EDIT

我做了什么至今:

是否有如何正确配置我的项目我的开发机器上编译我的生成服务器上VS2010 任何提示和技巧?还有什么要安装的(VS2010除外)?

谢谢,亚瑟

+0

问题:你是否被锁定到CC.Net,或者你是否有能力升级到其他东西? – Caladain 2010-06-25 22:06:52

+2

我不认为改用另一种持续集成技术会改变任何事情。正如Arthur所说,构建失败使用普通的MSBuild。这似乎是.Net 4.0与SDK 7.0A更紧密相关的问题,它应该是。 – 2010-06-26 09:50:32

+0

是的,那是真的。使用MSBuild在命令行上编译失败。 CC.NET尚未涉及。 – Arthur 2010-06-26 11:49:27

回答

4

现在,安装VS 2010是你唯一安全的选择。 Windows SDK将更新以启用您的方案,但我没有特定的发布日期。在此之前,您需要使用C++工具安装VS 2010,以便使用C++项目构建您的2010解决方案。确保通过他们的team blog和/或MSDN Forum让C++团队了解对这种情况的不满情绪。

即使在安装VS 2010之后,您可能需要调用相应的vcvars * .bat文件来正确设置您的环境变量。

+0

可悲的消息。如果安装SDK不起作用,我将不得不在我的构建机器上安装VS 2010。伤心,但显然是真的。 – Arthur 2010-06-26 11:54:37

+1

经过很多痛苦之后,我发现7.1 SDK安装必要的安装程序*如果您在安装过程中选择了正确的选项,并且不要试图超越自己:)。看到简短的答案http://stackoverflow.com/questions/4742325/how-to-build-a-vs2010-makefile-project-vcxproj-with-tfs-build-no-vs-2010/4768328#4768328 – BlueMonkMN 2011-01-22 14:20:54

+0

如何这个答案可以接受吗?构建服务器的目的不是必须安装Visual Studio ... @BlueMonkMN:您是/正在运行Windows 7还是服务器版本的计算机? – Brandon 2014-01-16 18:32:07

1

为什么你不想在你的构建服务器上安装VS2010?如果它是许可的话,那么每个开发人员的头部都有许可证,而不是每次安装,所以我相当肯定你可以不购买另一个副本 - 或者,在最坏的情况下,你可以安装应该至少安装配置位的快速版本缺少,所以你可以使用平台SDK编译器。

如果你仍然有msbuild的问题,你可以使用devenv.com /build,它完全复制VS构建环境。

+2

安装VS2010将是我最后的选择。 – Arthur 2010-06-21 12:13:20

+0

@Rup在构建服务器上安装VS是一个糟糕的主意。这与构建服务器的目的完全相反 - 提供一个干净的,类似客户的环境(现有的DLL等)。如果您认为在构建服务器上安装VS没有问题,那么您还需要建议在每个客户机箱上安装VS。 – mafu 2013-01-24 09:50:40

+0

@mafutrct我明白你来自哪里,但没有理由必须在构建服务器上托管和测试应用程序!当我写到我们的环境是一个用于单元测试和一些集成测试的构建服务器,但是自动部署到另一个服务器(没有VS)以进行真正的测试时。 – Rup 2013-01-24 10:33:13

相关问题