2017-05-04 32 views
3

我的WiX这样的代码:为什么[ProductCode]可以扩展,而[ProductName]不能?

<DirectoryRef Id="MyShortcutsDir"> 
    <Component Id="CMP_StartMenuShortcuts" Guid="62A9F5D2-F9D9-4F9B-8382-D470E11B2332"> 
     <Shortcut Id="docEng" Name="UFCOM user guide - ENG (pdf)" Target="[INSTALLFOLDER]UFCOM user guide - ENG.pdf" /> 
     <Shortcut Id="docChs" Name="UFCOM user guide - CHS (pdf)" Target="[INSTALLFOLDER]UFCOM user guide - CHS.pdf" /> 
     <Shortcut Id="UninstallShortcut" Name="Uninstall [ProductName] ~ [ProductVersion]" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" Description="Remove UFCOM from your Windows" /> 
     <RemoveFolder Id="RemoveMyShortcutsDir" On="uninstall" /> 
     <RegistryValue Root="HKCU" Key="Software\Newland Auto-ID\UFCOM" Name="installed" Type="integer" Value="1" KeyPath="yes" /> 
     <!-- On Win7, these shortcuts(.lnk) resides in "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\UFCOM" --> 
    </Component> 
</DirectoryRef> 

但我发现,[产品代码]可以expaneded而[产品名称]不能,为什么会这样呢?那么如何引用产品名称在元素中定义?括号

<Product Id="*" Name="UFCOM Driver 1.3.6" ... > 
</Product> 

Code screen shot ProductName is not expanded, damn

+0

不清楚你想问什么。使用'expaneded'找不到你要表达的内容。为什么你期望与你在XML文件'Uninstall [ProductName]'中写入的字符串不同的东西。 – harper

回答

5

在方括号属性名称只能由MSI扩大MSI数据库中的Formatted列类型的数据安装程序。产品安装时会发生扩展。

在MSI数据库的Shortcut表:

  • 参数列的类型Formatted,所以[ProductCode]将安装产品时扩大。
  • 名称列为类型Filename,所以[ProductName][ProductVersion]将不会在产品安装时展开。

您可以使用在WIX构建过程中展开的WIX属性。例如:

<?define ProductName='My Product Name' ?> 
<?define ProductVersion='X.Y.Z' ?> 

<Shortcut Id="UninstallShortcut" 
    Name="Uninstall $(var.ProductName) ~ $(var.ProductVersion)" 
    Target="[System64Folder]msiexec.exe" 
    Arguments="/x [ProductCode]" 
    Description="Remove UFCOM from your Windows" /> 
+0

非常好的提示WiX新手。 –

1

属性中的 “格式” 属性扩展。对于快捷方式,Shortcut table定义参数格式化,但名称不是。

你可以定义一个变量

<?define MyProductName = "UFCOM Driver 1.3.6" ?> 

,然后在这两个产品/ @名称使用它和快捷/ @名称:

<Product Name="$(var.MyProductName)" 

<Shortcut Name="Uninstall $(var.MyProductName)" 
+0

非常好的提示WiX新手。 –

相关问题