当我们使用 WIX 将鼠标悬停在 .msi 文件上时如何显示版本号

how to show the version number when we hover on the .msi file using WIX

当鼠标悬停在 .msi 文件上时,应弹出一个工具提示,显示应用程序的版本:

我想在此描述框中显示版本号 那么我可以在我的代码中添加什么,以便当我将鼠标悬停在 .msi 文件上时在此框中获得此版本号。

PUT-GUID-HERE:对于所有示例,将“PUT-GUID-HERE”替换为 GUID。您可以在这里生成一个:https://www.guidgenerator.com/


可能有更简单的方法来做到这一点,但似乎可以在 Package 元素中“re-purpose”Comments attribute这 - 这是一个片段,相关部分是“评论”属性:

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Comments="Version: 1.0.993" />

截图:

完整样本:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="HoverVersionNumber" Language="1033" Version="1.0.993" 
                    Manufacturer="Tester" UpgradeCode="PUT-GUID-HERE">
    
        <Package InstallerVersion="200" Compressed="yes"
                 InstallScope="perMachine" Comments="Version: 1.0.993" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate EmbedCab="yes" />

        <Feature Id="ProductFeature" Title="HoverVersionNumber" Level="1" />

  <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="HoverVersionNumber">
          
          <Component Feature="ProductFeature">
            <File Source="C:\Windows\Notepad.exe" />
          </Component>
        
      </Directory>
      </Directory>
    </Directory>

  </Product>

</Wix>

现在使用预处理器定义条目以允许设置一次版本号并在需要时应用 - $(var.MyVersion) 标记将扩展为定义中的版本号声明(允许单个位置更新版本号,前提是标记在源中的所有位置都是最新的):

片段:

  <?define MyVersion  = "1.0.993"?>

  <..>

  <Product Id="*" Name="HoverVersionNumber" Language="1033" Version="$(var.MyVersion)" 
           Manufacturer="Tester" UpgradeCode="PUT-GUID-HERE">
    
    <Package InstallerVersion="200" Compressed="yes" 
             InstallScope="perMachine" Comments="Version: $(var.MyVersion)" />

完整样本:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

  <?define MyVersion  = "1.0.993"?>
  
    <Product Id="*" Name="HoverVersionNumber" Language="1033" Version="$(var.MyVersion)" 
             Manufacturer="Tester" UpgradeCode="PUT-GUID-HERE">
    
        <Package InstallerVersion="200" Compressed="yes" 
                 InstallScope="perMachine" Comments="Version: $(var.MyVersion)" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate EmbedCab="yes" />

        <Feature Id="ProductFeature" Title="HoverVersionNumber" Level="1" />

  <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="HoverVersionNumber">
          
          <Component Feature="ProductFeature">
            <File Source="C:\Windows\Notepad.exe" />
          </Component>
        
      </Directory>
      </Directory>
    </Directory>

  </Product>

</Wix>