如何在C#中创建自定义操作并将其绑定到Wix安装项目上

一些人

如何创建自定义操作并将其链接到我的WiX安装项目?

我有:

  • WiX 3.11
  • 视觉工作室
一些人

您需要在解决方案中为WiX v3创建一个新的C#自定义操作项目
看起来应该像这样:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Deployment.WindowsInstaller;

namespace CustomAction
{
    public class CustomActions
    {
        [CustomAction]
        public static ActionResult CustomAction(Session session)
        {
            session.Log("Begin CustomAction");

            return ActionResult.Success;
        }
    }
}

将函数名称更改为适合您的函数的名称。
之后的那个右键单击文件夹引用您的WiX安装项目,然后选择添加引用...
单击选项卡项目,然后选择您的自定义操作项目。

对于最后一步,您需要将此代码添加到Product.wxs中:

<Binary Id="CustomActionBinary" SourceFile="$(var.CUSTOMACTIONSNAME.TargetDir)$(var.CUSTOMACTIONSNAME.TargetName).CA.dll" />
<CustomAction Id="CUSTOMACTIONAME" Impersonate="no" BinaryKey="CustomActionBinary" DllEntry="CUSTOMACTIONFUNCTION" Return="check" />

您只需要在此处更改一些名称:

  • CUSTOMACTIONSNAME =添加到引用文件夹中的自定义操作的名称(默认为“ CustomActions”)
  • CUSTOMACTIONNAME =为您的自定义操作选择一个名称,例如“ CreateConfig”。
  • CUSTOMACTIONFUNCTION =您要调用的自定义操作项目中的函数名称。

而已。

如果现在要在安装项目中调用自定义操作,则只需创建一个具有Action属性的“ Custom”元素,并将您的自定义操作ID作为值,如下所示:

<Custom Action="CreateConfig" ... />

您可以将自定义操作插入UI序列或安装序列中,如下所示:

<!--User Interface Sequence-->
<InstallUISequence>
    <Custom Action='CustomAction1' Before='ExecuteAction' />
</InstallUISequence>

<!--Installation Sequence-->
<InstallExecuteSequence>
    <Custom Action='CustomAction1' After='InstallInitialize'>NOT Installed</Custom>
</InstallExecuteSequence>

您还可以在对话框中的事件中调用自定义操作(仅代码段-涉及其中):

 <...>

 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">

   <Publish Event="DoAction" Value="CustomAction1">1</Publish>

 <...>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Wix 安装程序项目工具设置中定义自定义绑定器变量

是否可以为dotnet core 3.1创建wix c#自定义操作项目?

如何在wix安装程序中通过自定义操作设置安装目录?

如何在自定义操作 DLL (MSI/Wix) 中获取“已安装”属性?

在安装服务之前,如何在wix中执行自定义操作?

如何在 WIX 中创建自定义默认安装文件夹?

如何在UWP中使用可隐藏的内容正确自定义ListViewItem并将其绑定到模型?

如何在C#中创建自定义属性

如何在C#中创建自定义事件

如何在(C#)中创建自定义光标

如何在自定义服务器上使用ember-cli并将其部署到Heroku?

如何在wix安装程序的自定义操作中添加非常长的十六进制注册表?

如何在代码中的Amazon EMR引导操作上安装自定义包?

如何使用wix自定义操作停止.MSI安装

如何在 google 应用程序脚本上的 javascript 内部创建一个带有循环的自定义函数,并将其应用到范围为“C2:C”的电子表格中?

如何在运行时在Delphi中创建自定义属性并将其附加到字段

如何在 Knockout 中的自定义 bindingHandler 中绑定到自定义模板

如何在 Minecraft 中创建自定义操作命令

在QML中创建自定义C ++对象并将其存储在C ++模型中

如何在核心数据上创建可观察对象并将其绑定到tableView

WIX-添加C#自定义操作代码

Wix自定义操作运行DLL C#

Powershell:如何创建自定义对象并将其传递给Powershell中的函数?

visual Studio 2013项目安装程序如何创建自定义操作

如何在Angular 2中创建属性指令并将其绑定到属性?

如何在wix和DTF中本地化自定义操作的错误消息?

如何在Wix安装程序代码中记录自定义消息?

如何在 C# 中实现 Dispose 到自定义函数?

加载json数据并将其绑定到自定义布局