我有一个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的匹配方式。
希望这能有所帮助!