在我的.wixproj文件中,我有一个before构建操作来获取程序集版本并将其附加到输出文件名。但是,我在本地计算机上构建代码的方式与TFS服务器上的代码不同。所以我正在尝试以下方法:
<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="$(TargetDir)\myassembly.dll" Condition="$(env.COMPUTERNAME)=='THETFSSERVER'">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersions" />
</GetAssemblyIdentity>
<GetAssemblyIdentity AssemblyFiles="$(SolutionDir)\Source\Project\bin\myassemblydll" Condition="$(env.COMPUTERNAME)!='THETFSSERVER'">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersions" />
</GetAssemblyIdentity>
<CreateProperty Value="$(OutputName)_%(AssemblyVersions.Version)">
<Output TaskParameter="Value" PropertyName="TargetName"/>
</CreateProperty>
</Target>
我已尝试过&amp;(env.COMPUTERNAME),[&amp; COMPUTERNAME]以及我在网上看到的其他几个选项以及其他一些有意义的选项,但我无法找到准确地用来查看计算机名称....任何想法如何实现?
答案 0 :(得分:1)
有。它是$(COMPUTERNAME)。在MSBuild中首次加载构建脚本时,有一种非常简单的方法可以找出所有属性。您所要做的就是使用诊断详细程度生成日志。然后查看日志文件的顶部,它将列出所有初始属性和项目。
例如:
msbuild.exe /l:FileLogger,Microsoft.Build.Engine;verbosity=diagnostic;logfile=diag.log MyProject.proj
Link from where the answer was taken
Alsol,tfs是在msbuild下构建的,你可能构建了visual visual studio。因此,条件可以使用$(BuildingInsideVisualStudio)属性而不是计算机名称。