【问题标题】:How can I use Wix Properties如何使用 Wix 属性
【发布时间】:2017-09-01 14:20:00
【问题描述】:

我正在与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>

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

感谢您的帮助

【问题讨论】:

  • 尝试将您的属性设置为Secure="yes"
  • 谢谢,但没有帮助。 property 的这个属性用于服务器操作
  • @RPC161:引用文档不会让 Brian 错。他是对的。这里的“服务器”部分是因为 Windows Installer 安装有一个客户端进程和一个服务器进程,除非设置了 Secure,否则公共属性不会从客户端 UI/初始化进程转移到实际安装进程中。因此,必须将 Secure 设置为 true,即使这不是您的直接问题。
  • 好的,谢谢解释

标签: c# wix wix4


【解决方案1】:

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

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

如果有人知道一种方法,在运行时填充变量来解决这个问题,很高兴与我们分享。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多