gpt4 book ai didi

c - WIX CustomAction C#

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:21 24 4
gpt4 key购买 nike

请告诉我在这行括号里写什么

var UtilityKey = Registry.LocalMachine.OpenSubKey(...);

这是 CustomAction 的代码:

public static ActionResult ConfigUpgrade(Session session)
{
var UtilityKey = Registry.LocalMachine.OpenSubKey(...);
if (UtilityKey != null)
{
var value = UtilityKey.GetValue("DisplayVersion");
session.Log("Utility installation found! Version: {0}", value);
session["UTILITYINSTALLATIONEXISTS"] = "1";
}
else
{
session.Log("Utility installation not found!");
session["UTILITYINSTALLATIONEXISTS"] = "0";
}

return ActionResult.Success;
}

谢谢

最佳答案

正如 Adam Goodwin 在评论中所说,您需要输入您要查找的注册表项的路径,但不需要为此使用自定义操作

http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/read_a_registry_entry.html

如何:在安装过程中读取注册表项

安装程序通常需要在安装过程中查找注册表项的值。生成的注册表值通常在稍后安装的条件语句中使用,例如在未找到注册表项时安装特定组件。这如何演示从注册表中读取整数值并验证它是否存在于启动条件中。第 1 步:将注册表项读取到属性中

使用该元素读取注册表项。以下代码片段查找是否存在用于标识目标机器上 .NET Framework 2.0 安装的 key *。

<Property Id="NETFRAMEWORK20">
<RegistrySearch
Id="NetFramework20"
Root="HKLM"
Key="Software\Microsoft\NET Framework Setup\NDP\v2.0.50727"
Name="Install"
Type="raw" />
</Property>

RegistrySearch 元素指定了一个唯一的 ID、要搜索的注册表中的根以及要查找的键。 name 属性指定要查询的具体值。 type 属性指定应如何处理该值。 Raw 表示应该根据值的数据类型为值添加前缀。在这种情况下,由于 Install 是 DWORD,因此结果值将带有 # 前缀。

如果找到注册表项,上述示例会将 NETFRAMEWORK20 属性设置为“#1”,如果未找到,则设置为空。第 2 步:在条件中使用该属性

设置属性后,您可以在 WiX 项目的任何位置的条件下使用它。以下代码段演示了如何在未安装 .NET Framework 2.0 的情况下使用它来阻止安装。

<Condition Message="This application requires .NET Framework 2.0. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR NETFRAMEWORK20]]>
</Condition>

Installed 是一个 Windows Installer 属性,可确保仅在用户安装应用程序时进行检查,而不是在修复或删除应用程序时进行检查。如果设置了该属性,则条件的 NETFRAMEWORK20 部分将通过。如果未设置,安装程序将显示错误消息,然后中止安装过程。

  • 此注册表项仅用于示例目的。如果要检测已安装的 .NET Framework 版本,可以使用内置的 WiX 支持。有关详细信息,请参阅操作方法:检查 .NET Framework 版本。

关于c - WIX CustomAction C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25664451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com