properties - 无法将属性传递给 WiX 自定义操作

标签 properties wix windows-installer custom-action

我已阅读 How do I pass msiexec properties to a WiX C# custom action? ,但这并没有回答我的问题,或者我只是不明白我做错了什么。
我的安装包安装失败,日志显示在自定义操作集合中找不到我的属性。我的代码是:

    <CustomAction Id="SetCustomActionDataValue" Return="check" Property="Itp.Configurator.WixCustomAction" Value="G=G2" />
    <CustomAction Id="CreateDatabase" BinaryKey="Binary1" DllEntry="CreateDatabase" Execute="deferred" Return="check" />
    <InstallExecuteSequence>
        <Custom Action='SetCustomActionDataValue'  After="InstallFiles"/>
        <Custom Action='CreateDatabase'  After="SetCustomActionDataValue">
            NOT Installed AND NOT PATCH
        </Custom>
    </InstallExecuteSequence>

自定义操作中的代码是:
string Property1 = session.CustomActionData["G"];

最佳答案

您的第一个元素中的属性名称必须与您要将值传递给的延迟自定义操作的名称完全相同。因此,如果延迟操作是 CreateDatabase,则第一个元素应如下所示:

<CustomAction Id="SetCustomActionDataValue" Return="check" Property="CreateDatabase" Value="G=G2" />

关于properties - 无法将属性传递给 WiX 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5701274/

相关文章:

c# - 如何验证 Windows 安装程序 XML (WIX) 中属性中存储的路径

visual-studio - 弄清楚 Visual Studio 使用的 Windows SDK

windows - 安装Wix后,从“添加/删除程序”列表中删除程序

ios - 可以容纳不同类对象的属性 "currentViewController"

python - 在 lambda 中调用属性 setter

wix - 检查 WIX 中的在线更新

wix - 防止 WiX 从旧安装中删除/替换文件

c# - MSI 安装程序文件/文件夹权限

javascript - 删除IE中的窗口属性

Java通过属性名获取属性值