在 C# 自定义操作中更改安装程序属性

发布于 2024-11-03 01:23:30 字数 29 浏览 3 评论 0原文

如何更改 C# 自定义操作中的安装程序属性?

How to change installer properties in my C# custom action?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

﹂绝世的画 2024-11-10 01:23:30

要访问 WiX 属性,例如使用 Property 元素设置的属性,请使用
会话对象的索引器。这是一个示例:

[CustomAction]
public static ActionResult CustomAction1(Session session)
{
string myProperty = session["MY_PROPERTY"];
return ActionResult.Success;
}

设置属性也同样简单。您将通过引用键来设置值
您的财产名称。下面是一个示例:

[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session["MY_PROPERTY"] = "abc";
return ActionResult.Success;
}

如果设置属性时该属性不存在,则会创建该属性。同样,您可以
通过将属性的值设置为 null 来清除该属性。创建或更改属性值
来自自定义操作不会阻止安装程序在中显示这些属性
安装日志。因此,如果某个属性包含应该隐藏的信息,那么您就
最好先在 WiX 标记中声明它并设置其隐藏属性
是的。

<Property Id="MY_PROPERTY" Hidden="yes" />

To access a WiX property, such as those set with the Property element, use the
Session object's indexer. Here is an example:

[CustomAction]
public static ActionResult CustomAction1(Session session)
{
string myProperty = session["MY_PROPERTY"];
return ActionResult.Success;
}

Setting properties is just as easy. You'll set the value by referencing the key with the
name of your property. Here's an example:

[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session["MY_PROPERTY"] = "abc";
return ActionResult.Success;
}

If the property doesn't exist when you set it, it will be created. Similarly, you can
clear a property by setting its value to null. Creating or changing property values
from a custom action doesn't stop the installer from displaying those properties in
the install log. So, if a property holds information that ought to be hidden, you're
better off declaring it in your WiX markup first and setting its Hidden attribute
to yes.

<Property Id="MY_PROPERTY" Hidden="yes" />
完美的未来在梦里 2024-11-10 01:23:30

你不能。只有 Win32 DLL 和 VBScript 立即操作具有对安装程序属性的写访问权限。任何其他自定义操作类型只能通过其命令行或通过 CustomActionData 接收属性。

以下是 C++ DLL 自定义操作的教程: http://www.codeproject.com/ KB/install/msicustomaction.aspx

要获取和设置 Windows Installer 属性,您可以使用 MsiGetProperty()MsiSetProperty()

You can't. Only Win32 DLLs and VBScript Immediate actions have write access to installer properties. Any other custom action type can only receive properties through their command line or through CustomActionData.

Here is a tutorial for a C++ DLL custom action: http://www.codeproject.com/KB/install/msicustomaction.aspx

To get and set Windows Installer properties you can use MsiGetProperty() and MsiSetProperty().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文