如何在wix工具集引导程序项目中获得当前的wpf项目程序集版本



我有一个wpf项目,安装程序是由wix安装项目创建的。编译wix安装程序项目以获得.msi。.exe是使用wix引导程序项目从.msi文件生成的。现在我的问题是如何获得程序集版本[assembly:AssemblyFileVersion("x.x.x.xx"(]形式的wpf.cs文件?

Andy是对的,您将无法从.cs文件中提取版本号,因为WiX不编译或不知道任何与C#代码有关的信息。

您要做的是使用程序集版本属性对主可执行文件(可能是.csproj应用程序(进行版本设置。(这些可以在项目属性中找到(

1( 在Product.wxs中,将所述主可执行文件添加为安装程序中的文件。

<Component Id='MainExecutable' Guid='*'>
    <File Id='MainExe' Name='MainExe.exe' Source='Path-to-exe' KeyPath='yes' /> 
</Component>

2( 将.msi的版本绑定到此主可执行文件。这是在Product元素的Version属性中完成的。

<Product Id="*" Name="My Product Name" Language="1033" Version="!(bind.FileVersion.MainExe)" Manufacturer="Debabrata" UpgradeCode="PUT-GUID-HERE">

并不是说FileVersion后面的值就是文件的ID。这很重要。

现在要在引导程序项目中使用这个版本号,过程非常相似。

1( 将MSI添加到引导程序中。

<MsiPackage SourceFile="Path-to-msi" Id="MyMSI"> 

2( 在Bundle元素的Version属性中,绑定应为.

<Bundle Name="My Bundle" Version="!(bind.packageVersion.MyMSI)">

再次注意ID的匹配方式。

希望这能有所帮助!

最新更新