我有使用Visual Studio 2012中的Wix工具构建的msi安装程序。 我使用Version =“(bind.FileVersion.File)”设置了setup.exe的版本。 中途看起来不错;意味着我得到Control中显示的相同版本 面板作为dll的版本,我已经将它绑定到安装后的版本。 但问题是,当我看到setup.exe文件的属性时,它会显示给我 不同的。 无法想象为什么会这样? 任何帮助将不胜感激 注意我在64位计算机上使用64位Windows 7
答案 0 :(得分:3)
正如你提到的那样,我提到的是一个EXE而不是MSI,我猜你正在将你的msi捆绑到一个bootstrapper包中。
要将您的exe版本绑定到您的msi,请按照here所述使用bind.packageVersion.PackageID
。
以下是如何使用它的示例:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="Bootstrapper1"
Version="!(bind.PackageVersion.master)"
Manufacturer="Test"
UpgradeCode="$(var.UpgradeCode)">
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<MsiPackage Id="master" SourceFile="MyInstaller.msi" />
</Chain>
</Bundle>
</Wix>
要将MSI绑定到所选的程序集,请执行以下操作:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="*"
Name="MyProduct"
Language="1033"
Version="!(bind.fileVersion.My.dll)"
Manufacturer="Test"
UpgradeCode="$(var.UpgradeCode)">
这应该确保以下绑定顺序:
setup.exe -> install.msi -> assembly.dll