问题标签 [custom-action]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4350 浏览

windows-installer - 从我的自定义操作中取消安装

我正在使用 Windows Installer(不是 wix)为我的程序编写安装程序。在某些情况下,我想从我的自定义操作中取消安装过程。此外,我想在我的文本中显示一条错误消息。这是怎么做的?

C#,.net 3.5

0 投票
1 回答
990 浏览

c# - 检测用户是否在自定义操作中选择了“所有用户”或“仅我”

我试图检测用户在安装我的程序期间是否选择了“所有用户”或“只有我”单选。我有一个自定义操作设置,它覆盖了几种方法(OnCommit、OnBeforeInstall 等)。现在我正试图在 OnCommit 期间找出这些信息。

我已经读到我想要获得的属性是 ALLUSERS 属性,但是我没有找到将其存储在实例/本地数据中的位置。

有谁知道一种方法吗?

-本

0 投票
1 回答
923 浏览

wix - 如何使用 WIX 2.0 创建自定义操作项目

我已经安装了 WIX 2.0(和 Votive)。我需要使用自定义操作项目创建用户定义的自定义操作。我在安装 WIX 3.0 时在 VS2008 中找到了自定义操作项目模板。现在,我在带有 WIX 2.0 的 VS2005 中找不到任何模板。

谁能告诉我如何创建一个自定义动作项目(带有一些自定义动作的类)..像这样

我认为 Microsoft.WindowsInstaller 和 Microsoft.Deployment.WindowsInstaller 是创建此类方法所需的参考(不确定),但我无法在我的机器中找到它们。


通过引用“Microsoft.WindowsInstaller”dll,我设法创建了一个自定义操作项目(只是一个具有一个类和自定义操作方法的类库)。但是在执行该dll时面临问题..

该dll中有一个名为“InstallItem2”的方法标记为[CustomAction] ..但面临错误:

此 Windows Installer 程序包存在问题。无法运行完成此安装所需的 DLL(...)

知道为什么会出现这个错误吗?

0 投票
2 回答
2004 浏览

visual-studio-2008 - 删除注册表项,在 Windows 7 中使用 Visual Studio 2008 安装和部署项目

我在 Visual Studio 2008 Professional 中创建了一个安装和部署项目。我正在使用 Visual C++,其中我有两个在自定义操作下运行的 exe 文件。一个在提交中运行,另一个在卸载中运行。目的是在安装时添加注册表项并在卸载时将其删除。它在 Windows XP 上完美运行,但是当我更改为 Windows 7 并运行设置时,只有添加键的部分有效。卸载时不会删除密钥。但是,当我从安装程序中取出卸载 exe 文件并在 Windows 7 上单独运行时(不是通过安装程序,只需双击 exe),它就会完美地删除注册表项。知道问题是什么吗?

0 投票
1 回答
710 浏览

windows-installer - 将转换应用于二进制表以更改自定义操作

我们最近有一个 MSI 在自定义操作中出现错误。我能够为 MSI 二进制表创建一个转换,这确实有效,但我认为我很幸运。我更改了自定义操作 (Installscript),编译了脚本,然后导出了二进制表。我将二进制表导入到基本 MSI 的副本中,然后从基本 MSI 和带有新二进制表的副本创建了一个 MST。我基本上通过这样做替换了 ISSetup.dll。

我的问题是,我很幸运能够让它发挥作用吗?这个过程有哪些我没有想到的陷阱,有没有更好的方法来做到这一点?

0 投票
1 回答
788 浏览

wix - DTF CustomAction 到 WiX

我正在使用 DTF 即时自定义操作。自定义操作至少需要 5 分钟来执行其操作。直到在进度对话框中,只有进度文本是可见的。进度条根本不动。我在 WiX 文件中设置了 ProgressText。我怎样才能使进度条移动,这样它就会对用户更加友好。现在它只是闲置。给人的感觉是安装人员在那个动作中受到了打击。

有人可以帮助我,如何为 C# DTF 自定义操作中的进度控制赋予价值。

谢谢,瓦伦

0 投票
1 回答
2094 浏览

windows - 使用 Visual Studio 集成的 WiX 托管自定义操作中没有调试信息

我设法在 C# 中创建了一个自定义操作,使用MakeSfxCA它主要是有效的。

但是,有些问题需要调试才能解决。(“printf-debugging”还不够。)

但是,所有调试信息都会丢失。
当从 Visual Studio 项目调用 MakeSfxCA 时,.pdb 文件不会作为参数传递,因此创建的 CA-dll 中不包含调试信息。

如果我手动运行MakeSfxCA

然后调试信息包含在创建的自定义操作 dll 中。

如何让 WiX-CA-project 自动添加 pdb-info?

/莱夫

0 投票
7 回答
13352 浏览

wix - 无法在 MSI 中运行 Wix 自定义操作

我正在尝试为我的 Wix 安装创建自定义操作,但它不起作用,我不确定为什么。

这是适当的 Wix 文件中的位:

这是我的自定义操作的完整类文件:

该操作通过在 UI 中按下按钮来运行(目前):

当我运行 MSI 时,我在日志中收到此错误:

它给我的两个错误代码或消息都不足以告诉我出了什么问题。或者,也许我只是不明白他们所说的是错误的。

起初我认为这可能是因为我使用的是 Wix 3.5,所以为了确保我尝试使用 Wix 3.0,但我得到了同样的错误。

关于我做错了什么的任何想法?

0 投票
1 回答
1144 浏览

visual-studio-2008 - 如何通过合并模块调用 wix 自定义操作 dll 以使用调试运行时?

我正在尝试为我们的产品创建一个带有相应调试安装程序的调试版本。我是 Wix 的新手,所以请原谅这里包含的任何幼稚。我项目中的调试 Dll 依赖于 VS2008 和 VS2008SP1 调试运行时。我在 wix 中创建了一个合并模块功能,以将这些运行时与我的安装程序捆绑在一起。

如果我正在对安装程序进行调试构建,我会像这样包含该功能:

唯一的问题是我的安装程序还包括一个也依赖于调试运行时的自定义操作:

那么如何以自定义操作也可以访问它的方式打包调试运行时呢?

0 投票
2 回答
5576 浏览

binary - WIX:在安装过程中使用临时文件

我正在编写 WIX 安装程序,我有以下要求:
在安装期间,我需要将安装程序中包含的文件(我们称之为 A)的绝对路径传递给 COM 组件,该组件已经存在于硬盘驱动器上并且是另一个程序的一部分。我已经编写了一个适当的自定义操作,它需要文件 A 的路径。我不想将 A 作为安装在 Program Files 文件夹中并在卸载过程中删除的文件包含在内。相反,我只想将 A 临时放在硬盘上,调用我的自定义操作,这将导致 COM 组件使用 A 的内容,然后从磁盘中删除 A。有没有简单的方法来实现这个目标?

我试图利用二进制表并将 A 存储在那里,但是我不知道如何使用绝对路径来引用 A。我知道我可以将 A 放在 MSI 文件之外,但我想将每个文件安装程序需要的文件保存在单个 MSI 中。

任何帮助,将不胜感激。