我如何使用Wix属性

时间:2017-08-31 15:08:47

标签: c# wix wix4

我正在使用Wix v4创建一个msi包。我遇到了问题,我必须在安装开始时在CustomAction(C#)中设置一个Property。

这很好用,但现在我有点困惑。在我的所有情况下都不能使用该属性。

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">

    

<Property Id="ANUMMER" Value="A2000-0000" />

<Binary Id='CustomActionReadConfig' SourceFile='...'/>

<InstallUISequence>
  <!-- Set the property over session["ANUMMER"] = "..." -->
  <Custom Action="CustomActionReadConfig" Before="AppSearch" />
</InstallUISequence>

ini文件没有问题

    <IniFile Id="Programm.ini" Action="createLine" Key="ANUMMER" Name="Programm.ini" Section="Programm" Value="[ANUMMER]" Directory="Dir" />

对于目录,我找到了以下解决方法

<SetDirectory Action="SetApplicationFolder" Id="APPLICATIONFOLDER" Value="[ProgramFilesFolder]\[COMPANYNAME]\[MYPROGRAMM]\[ANUMMER]"  Sequence="ui"/>

但快捷方式可以&#39;使用它,我没有找到解决方法

<Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="Programm [ANUMMER]" WorkingDirectory="Dir" Advertise="yes" Icon="DesktopIcon.exe" IconIndex="0" />
    <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="Programm" WorkingDirectory="Dir" Advertise="yes" Icon="StartMenuIcon.exe" IconIndex="0">
      <ShortcutProperty Key="Name" Value="Programm [ANUMMER]"/>
    </Shortcut>

像这样,我在其他一些情况下需要这个属性。我使用它错了还是必须使用特殊的逃生组合?我不能在Name属性中使用属性吗?还有另一种方法,使用输入作为我可以在CustomAction中设置的变量吗?或者什么是基本问题,我不能以sutch方式使用这样的自定义运行时属性?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在搜索更多选项后,我在其他问题中找到了问题的原因:Dynamically assigning name to shortcut at run time in WIX

属性值可以在Formatted类型中使用。我想在LongFileNameType(简单类型)或字符串中使用它。

如果有人知道某种方法,要在运行时填充变量来解决这个问题,最好与我们分享。

信息:该值也可以是格式为!(loc.VARIABLE)的本地化变量。