如何在 Wix 工具集引导程序项目中获取当前 wpf 项目程序集版本?
How to get current wpf project assembly version in wix toolset bootstrapper project?
我有一个 wpf 项目,其安装程序是由 wix 安装项目创建的。编译 wix 安装项目以获取 .msi。 .exe 是使用 wix 引导程序从 .msi 文件生成的 project.Now 我的问题是如何从 wpf .cs 文件中获取程序集版本 [assembly: AssemblyFileVersion("x.x.x.xx")]?
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 的匹配方式。
希望这对您有所帮助!
我有一个 wpf 项目,其安装程序是由 wix 安装项目创建的。编译 wix 安装项目以获取 .msi。 .exe 是使用 wix 引导程序从 .msi 文件生成的 project.Now 我的问题是如何从 wpf .cs 文件中获取程序集版本 [assembly: AssemblyFileVersion("x.x.x.xx")]?
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 的匹配方式。
希望这对您有所帮助!