我需要使用Exec
任务执行以下Windows Azure SDK工具:
C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.3\bin\cspack.exe
在.build
文件中引用此路径的最佳方法是什么?
直接引用,如下所示,它可能不适用于所有主机(构建服务器和开发机器):
<Target Name="CreatePackage" DependsOnTargets="Build" AfterTargets="Build">
<Exec Command="C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.2\bin\cspack.exe /parameters"></Exec>
</Target>
(注意:我不想使用CSPack任务)
答案 0 :(得分:1)
我的经验法则是要么使用ToolLocationHelper
类,要么使用注册表属性$(registry:Hive\Foo)
,或者启动类似快速环境编辑器的东西,然后选择一个可以给我最短,最大错误的变量 - 宽容的道路。在这种情况下,您没有太多选择,您可以做的最好的事情是拥有一个项Include="$(ProgramW6432)\Microsoft SDKs\Windows Azure\.NET SDK\**\bin\cspack.exe"
来保护不同的体系结构,非默认路径和版本,或者它是更大的脚本的一部分首先运行setenv.cmd
并使用$(ServiceHostingSDKInstallPath)
。您还可以尝试运行msbuild foo.build /v:diag > foo.txt
并查看已评估的属性转储,但各种SDK路径将取决于您是运行x86还是x64 MSBuild并且是特定于开发人员的。