如何使用 Wix 属性
How can I use Wix Properties
我正在与 Wix v4
合作创建一个 msi 包。我遇到了问题,我必须在安装开始时在 CustomAction (C#) 中设置 属性。
这很好用,但现在我有点困惑。 属性 不能用于我的所有情况。
<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"/>
但是快捷方式无法使用,我没有找到解决方法
<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 中设置吗?或者我不能以这种方式使用这样的自定义运行时 属性 的基本问题是什么?
感谢帮助
搜索更多选项后,我在此处的另一个问题中找到了问题的原因:Dynamically assigning name to shortcut at run time in WIX
属性值可用于Formatted类型。我想在 LongFileNameType(简单类型)或字符串中使用它。
如果有人知道办法,在运行时填充一个变量来解决这个问题,很高兴与我们分享。
信息:该值也可以是格式为 !(loc.VARIABLE).
的本地化变量
我正在与 Wix v4
合作创建一个 msi 包。我遇到了问题,我必须在安装开始时在 CustomAction (C#) 中设置 属性。
这很好用,但现在我有点困惑。 属性 不能用于我的所有情况。
<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"/>
但是快捷方式无法使用,我没有找到解决方法
<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 中设置吗?或者我不能以这种方式使用这样的自定义运行时 属性 的基本问题是什么?
感谢帮助
搜索更多选项后,我在此处的另一个问题中找到了问题的原因:Dynamically assigning name to shortcut at run time in WIX
属性值可用于Formatted类型。我想在 LongFileNameType(简单类型)或字符串中使用它。
如果有人知道办法,在运行时填充一个变量来解决这个问题,很高兴与我们分享。
信息:该值也可以是格式为 !(loc.VARIABLE).
的本地化变量