我正在使用TFS2012与Visual Studio 2012构建定义,并且将一个定义设置为构建包含.csproj和.vcproj(分别为c#和C++)的解决方案。我可以在构建服务器上运行解决方案的本地构建,效果很好,构建输出显示所有项目(最显着的是C++项目)都是构建的;预制,后建,整个九码。但是,当我运行构建完全相同的解决方案的构建定义时,C++项目似乎没有构建。生成报告没有错误返回,但生成日志只返回以下为c + +项目:与csproj一起构建vcproj TFS2012
C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ IDE .... \ vc \ vcpackages \ VCBuild.exe /覆盖: “[路径解决方案文件] .Mixed Platforms.Debug.vsprops”[路径到项目文件] “调试|的Win32”
我所希望看到的是一个多更长的构建报告(表明项目实际构建),但是,我留下了似乎缺乏构建C++项目的尝试。更不用说构建输出不包含C++项目中的任何程序集或.pdb。
为了消除没有安装Visual Studio 2008的问题,构建服务器确实安装了Visual Studio 2008,并且已经执行了全面修复以确保所有正确的文件都已到位(像vcbuild.exe和vcprojectengine.dll)。
任何想法,为什么c + +项目不建设?谢谢你的帮助!
UPDATE_ _ __ _ __ _ __ _ __ _ ____
问题已经改变。由于一些漂亮的构建日志记录,我的印象是C++项目没有构建(我运行这个想法是因为我没有在指定的构建定义放置位置看到任何项目输出)。经过一番调查(以及一些非常有帮助的建议!),问题一直集中在简单的C++项目输出目录属性不会像C#属性那样动态更改。手动更改这些值并运行构建定义已经证明构建定义使用C++项目文件的默认输出目录属性。
我的临时解决方案是做一些脚本来将这些输出复制到我需要的文件夹中。为了进一步提出我的帖子的问题,是否有任何设置让这些C++项目输出目录属性动态变化为C#项目?
你的意思是C#项目动态更新输出目录?你的意思是基于配置的释放/调试?对于C++和c#都应该是相同的。 – Isaiah4110
我通过使用许多构建注意到的一件事是项目属性的许多宏值被默认模板更改。这允许将输出目录更改为C:\ Builds \ 1 \ ProjectCollectionName \ DefinitionName之类的东西,换句话说,要在构建临时区域而不是默认输出目录中输出(至少这是我的理解)。因此,要解决这个问题,我将在构建模板中添加一个活动,将C++输出复制到放置位置。 – Freestyle076