如何在构建文件中引用Azure SDK工具?

时间:2014-06-11 05:42:13

标签: c# .net msbuild msbuild-task msbuild-target

我需要使用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任务)

1 个答案:

答案 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并且是特定于开发人员的。