TFS 2010构建中解决方案目录的变量(或接近的内容)
我在构建结束时运行Invoke命令。我试图让它运行一个批处理文件 但我不想硬编码批处理文件的路径(以防我将构建移动到其他构建服务器) 我需要为IvokeProcess的WorkingDirectory输入一个变量。在TFS2008构建中,我会使用TFS 2010构建中解决方案目录的变量(或接近的内容),tfs,tfsbuild,Tfs,Tfsbuild,我在构建结束时运行Invoke命令。我试图让它运行一个批处理文件 但我不想硬编码批处理文件的路径(以防我将构建移动到其他构建服务器) 我需要为IvokeProcess的WorkingDirectory输入一个变量。在TFS2008构建中,我会使用$(SolutionDir)。但我在TFS2010构建中找不到类似的东西。(我尝试了Environment.CurrentDirectory,得到了C:\Windows\System32 如何获取对解决方案(或项目)所在路径的引用 我建议您不要将注意力集
$(SolutionDir)
。但我在TFS2010构建中找不到类似的东西。(我尝试了Environment.CurrentDirectory,得到了C:\Windows\System32
如何获取对解决方案(或项目)所在路径的引用
我建议您不要将注意力集中在您试图完成的任务类型的“工作目录”上。
您可以打开构建过程模板并添加一个新参数(type=string,Direction=In),默认值等于批处理文件的当前完整路径 然后在InvokeProcess活动的参数中设置此参数 在默认值中,我只是简单地设置了“C:\ProgramFiles\NCover\NCover.Console.exe” 现在,每个构建定义都有一个额外的参数(在“进程”下),默认值是当前有意义的参数
如果我们移动到另一个构建服务器,我只需更新构建定义。我使用的是
$(SolutionDir)
在生成后事件中,它是否正常工作。您遇到的具体错误是什么?我这样做了。但我不喜欢它,因为批处理文件已签入源代码。每次从TFS下载时,让生成定义的创建者提供指向它的路径似乎毫无意义。