2013-06-05 55 views
14

我正在尝试使用WiX创建带UI的安装程序。Wix安装程序 - 如何在安装路径中显示[制造商]的值?

我INSTALLFOLDER设置使用此:

<Directory Id="TARGETDIR" 
      Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="ManufacturerFolder" 
       Name="[Manufacturer]"> 
     <Directory Id="INSTALLFOLDER" 
       Name="[ProductName]" /> 
    </Directory> 
    </Directory> 
</Directory> 

在<产品>部分,我定义:

<UIRef Id="WixUI_InstallDir" /> 
<UIRef Id="WixUI_ErrorProgressText" /> 

<Property Id="WIXUI_INSTALLDIR" 
      Value="INSTALLFOLDER" /> 

当我运行安装程序,并获得了目标文件夹面板,我看到:

Install Service to: 
C:\Program Files\[Manufacturer]\[ProductName]\ 

我该如何评估v可展示的?

注意:如果我离开他们,然后单击下一步,安装并完成它的作品。它看起来很糟糕。

回答

5

在配置文件中定义您的变量。

例如,创建一个文件包含以下命名config.wxi:

<?xml version="1.0" encoding="utf-8"?> 
    <Include> 
    <?define Manufacturer = "Company Name" ?> 
    <?define ProductName = "Product Name" ?> 
    </Include> 

然后使用$(var.Manufacturer)$(var.ProductName)引用您的.wxs文件中的变量。

+0

感谢您的帮助。 – serialhobbyist

29

活页夹变量可以使这非常容易,而无需乱搞定义预处理器变量。它会是这样的有很多:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)"> 
     <Directory Id="INSTALLFOLDER" Name="!(bind.property.ProductName)" /> 
    </Directory> 
    </Directory> 
</Directory> 

!(bind.)语法在WiX.chm的Linker (light)主题中记录。

+1

当应用实例转换时,它不会出现这种情况 - 在安装其他实例时,我仍然获取默认的ProductName。 – arathorn