C# 安装后的Winform应用程序版本始终为0.0.0.0

C# 安装后的Winform应用程序版本始终为0.0.0.0,c#,winforms,wix,version,C#,Winforms,Wix,Version,我有一个Winform应用程序(c#&.NET4.0)。对于部署,我使用Wix安装程序。安装后,程序显示版本0.0.0.0。我哪里做错了 在我的项目中,我像这样更改了AssemblyInfo(因此在我构建时它应该自动生成版本): 在WIX中,我绑定如下版本: <?define ProductVersion="!(bind.FileVersion.IUTexe)"?> <?define UpgradeCode="GUID"?> <Wix xmlns="http://

我有一个Winform应用程序(c#&.NET4.0)。对于部署,我使用Wix安装程序。安装后,程序显示版本0.0.0.0。我哪里做错了

在我的项目中,我像这样更改了AssemblyInfo(因此在我构建时它应该自动生成版本):

在WIX中,我绑定如下版本:

<?define ProductVersion="!(bind.FileVersion.IUTexe)"?>
<?define UpgradeCode="GUID"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product 
Id="*" 
Name="Installer Update Test" 
Language="1033" 
Version="$(var.ProductVersion)" 
Manufacturer="Manufacturer" 
UpgradeCode="$(var.UpgradeCode)">
...
它显示了正确的版本:

编辑2: 这是它在属性中的显示方式:


我在VS2012之前的安装项目中看到了这一点。有一个特定于安装程序的版本号,该版本号与已安装程序集的版本号分开。在VS2010安装项目中有一个输入此版本号的位置,如果我没记错,我必须手动使其与应用程序的版本号匹配。@adv12您可能还记得,您是如何做到的吗?在VS2010安装项目中,我想此属性称为“version”在解决方案资源管理器中选择安装项目时显示的PropertyGrid中。我不知道如何在WiX中指定它。这个问题对你有用吗?我一开始就遵循了这个答案……但是,仍然无法让版本显示出它应该显示的内容。正如我在上面的编辑中添加的,当我调用System.Reflection.Assembly.GetExecutionGassembly().GetName().Version时,我得到了正确的值。。。
<?define ProductVersion="!(bind.FileVersion.IUTexe)"?>
<?define UpgradeCode="GUID"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product 
Id="*" 
Name="Installer Update Test" 
Language="1033" 
Version="$(var.ProductVersion)" 
Manufacturer="Manufacturer" 
UpgradeCode="$(var.UpgradeCode)">
...
var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
label2.Text = String.Format("My Application Version {0}", version);