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

问题描述

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

Version Number on Hover for MSI

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

解决方法

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


执行此操作可能更简单,但是似乎可以在Package元素中“重新使用” Comments attribute ,这是一个代码段,相关部分是“评论”属性:

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

屏幕截图

MSI Hover

完整样本

<?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语句中扩展为版本号(允许使用单个如果标记在源代码中的任何地方都是最新的,则更新版本号的位置):

代码段

  <?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>