我在构建结束时运行了一个Invoke命令。我试图让它运行批处理文件。
但我不想硬编码批处理文件的路径(如果我将构建移动到不同的构建服务器)。
我需要一个变量来输入IvokeProcess的WorkingDirectory。在TFS 2008 Build中我会使用$(SolutionDir)
。但我在TFS 2010 Build中找不到类似的东西。 (我尝试了Environment.CurrentDirectory,我得到了C:\ Windows \ System32
如何获取对我的解决方案(或项目)所在路径的引用。
答案 0 :(得分:2)
我建议不要把重点放在'工作目录'上,以确定你要完成的任务类型。
您可以打开构建流程模板&添加一个新的Argument(type = string,Direction = In),默认值等于批处理文件的当前完整路径。
然后在InvokeProcess活动的参数中设置它。以下是我调用NCover的方法:
在默认值中我只设置了“C:\ Program Files \ NCover \ NCover.Console.exe”
现在每个构建定义都有一个附加参数(在“Process”下),默认值是当前有意义的值。
如果我们转移到另一个构建服务器,我只需要更新构建定义。