我正在尝试使用 tfsbuild 和 Visual Studio 2012 构建各种 csproj 文件。我创建了一个构建定义,其中包含适当的过程来构建三个不同的 csproj 文件。每个 csproj 文件都有 prebuild 和 postbuild 事件,大多数是简单的删除和复制命令。只需这些步骤,构建就可以很好地工作。现在我想添加命令,让文件在构建之前从 tfs 中签出,并在构建后重新签入。我已将正确的 VS 命令行命令添加到 prebuild 和 postbuild 事件
查看:
"$(DevEnvDir)tf" checkout /lock:none "$(Pathname)$(ConfigurationName)\$(TargetFileName)"
报到:
"$(DevEnvDir)tf" 签入 "$(Pathname)$(ConfigurationName)\$(TargetName).*" /noprompt /force /comment:"构建签入"
但是现在当我尝试构建时,我得到一个返回的错误,如下所示:
$/AiFramework/toolbox/Accelitec.Utility/Accelitec.Utility.csproj - 1 个错误,0 个警告,查看日志文件 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common。目标 (1063):命令 ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\tf" checkout /lock:none "\AiDevelopment\AiFramework\bin\Debug\Accelitec.Utility.dll" " 以代码 100 退出。
错误报告没有提供更多关于出了什么问题的信息。有趣的一点是,当我在本地和单独构建文件时,即使使用了 checkout/in 命令,文件也会构建,甚至执行正确的 checkout/in。
我的想法(在团队服务器上对命令行进行了一些摆弄)是它与工作区有关,特别是签出文件所需的工作区,但除此之外,我不知道从哪里继续。