我有一个使用引导程序启动我的msi文件的Wix安装程序。我已经通过在我的wix项目中将批处理文件作为post build事件调用来完成此操作。然后手动调用蜡烛和灯光,并将各种变量传递到Bundle.wxs文件中。这一切都有效,并生成调用我的msi文件的exe ..
但是,我现在想将msi BuildVersion传递到bundle文件中。在创建msi的wxs文件中,我使用的是在BeforeBuild部分中设置的BuildVersion,使用BuildVersion =%(AssemblyVersion.Version)。
无论我尝试什么,我都无法访问此变量,以便将其传递给我的build_bootstrapper.bat文件。然而,我可以传递硬编码的值。我正在设置我自己的AssemblyVersionNumber环境变量,如下面的AfterBuild部分所示:
<AssemblyVersionNumber Condition="'$(AssemblyVersionNumber)' == ''">$(BuildVersion)</AssemblyVersionNumber>
但是当它到达我的脚本文件时它是空的(即使它是硬编码的,也是填充的)。我已经尝试了一切。
有没有人知道如何获得%(AssemblyVersion.Version);从post build步骤到我的命令文件?
提前致谢
<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="..\..\App\AppThing\bin\Release\AppThing.exe">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
</GetAssemblyIdentity>
<PropertyGroup>
<DefineConstants>BuildVersion=%(AssemblyVersion.Version);</DefineConstants>
</PropertyGroup>
</Target>
<Target Name="AfterBuild">
<PropertyGroup>
<DefineConstants>BuildVersion=%(AssemblyVersion.Version);</DefineConstants>
<AssemblyVersionNumber Condition="'$(AssemblyVersionNumber)' == ''">$(BuildVersion)</AssemblyVersionNumber>
</PropertyGroup>
</Target>
<PropertyGroup>
<PreBuildEvent>$(ProjectDir)scripts\copy_services.bat $(SolutionDir) $(ProjectDir)</PreBuildEvent>
</PropertyGroup>
<Target Name="AfterClean">
<Message Text="Cleaning wix files, TargetDir is: $(TargetDir)" Importance="High" ContinueOnError="true" />
<CreateItem Include="$(TargetDir)\**\*.*">
<Output TaskParameter="Include" ItemName="BinFilesDir" />
</CreateItem>
<Delete Files="@(BinFilesDir)" />
</Target>
<PropertyGroup>
<PostBuildEvent>$(ProjectDir)scripts\build_bootstrapper.bat $(ProjectDir) $(ConfigurationName) $(AssemblyVersionNumber)</PostBuildEvent>
</PropertyGroup>
答案 0 :(得分:1)
$(BuildVersion)未设置为任何内容。
您将定义常量设置为“BuildVersion =%(AssemblyVersion.Version)”但从未实际定义名为“BuildVersion”的MSBuild属性,因此$(BuildVersion)的值为“”。
使用%(AssemblyVersion.Version)。
<AssemblyVersionNumber Condition="'$(AssemblyVersionNumber)' == ''">%(AssemblyVersion.Version)</AssemblyVersionNumber>