我有一个在VS 2008中构建良好的项目,然后我们安装并开始使用TFS Build,然后我们升级到TFS 2010 。一切都很好,并且构建正确(在我实现了新的构建过程之后,通过从任何远程Visual Studio 2010客户端启动一次单击构建即可使所有内容都变得非常好)。 Visual Studio不需要安装在生成代理上。我很努力(非常难难)不要在Build Agent上安装Visual Studio,因为我的理解是没有必要,我们没有许可将它安装在非开发机器上。如何使用TFS Build(VS 2010)创建VS2010 MakeFile项目(vcxproj)
现在我试着升级到VS 2010的解决方案,仍然针对.NET 3.5,因为它是一个针对SQL Server CLR过程的程序集,而SQL Server目前还不支持.NET 4.0。但是我根本无法在TFS Build下继续构建它。我似乎无法从TFS Build和MS Build命令行获得一致的错误消息,但我认为它与Microsoft.Cpp.Targets不在C:\ Program Files \ MSBuild \中有关,因为我避难没有安装Visual Studio。我确实安装了Microsoft Windows SDK 7.1,这样我就可以为其他.NET 4.0项目运行svcutil等.NET 4.0 SDK工具,但似乎没有安装此构建所需的东西。错误TFS构建带给我的是:
C:\ TFSBld [...] \ GenerateLanguage \ GenerateLanguage.vcxproj(46,3): 错误MSB4019:导入项目 “C:\ Microsoft.Cpp .Default.props“未找到 。确认 声明中的路径是正确的, 并且该文件存在于磁盘上。
当我点击这个错误就带我到这条线在vcxproj文件:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
我真正需要在这个项目做的是运行RESGEN产生从RESX文件资源文件,并将它们编译成卫星组件。我正在使用makefile编译来执行此操作,手动运行resgen(我认为这是因为我找不到将sattelite程序集编译为独立解决方案的方法),然后将它们编译为DLL(I不记得现在如何工作,但我认为这是手动运行AL.exe从资源文件编译DLL文件)。所以基本上我只需要运行命令行来构建这个项目,而我似乎无法找到一个合理的方式来完成这个任务,而不会抛出整个项目并编辑TFS构建脚本来运行一堆硬编码的命令行代替。有一个更好的方法。
我一直在这一整天,并试图写我自己的.targets文件和.xml属性表来代替标准文件,但它是我的头。我试图简单地删除这些行,但是MSBuild抱怨没有“构建”目标。我试图给vcxproj文件添加一个虚拟文件,但是它似乎没有运行完成所有工作前的构建前和构建后步骤。
看起来这个问题已经在这里得到解答:http://stackoverflow.com/questions/3043294/how-to-build-a-vs2010-c-project-on-a-buildserver什么是正确的方式来更新/删除这个问题? – BlueMonkMN 2011-01-20 14:20:26