问题标签 [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 投票
1 回答
1776 浏览

ruby-on-rails - 我们可以以 DRY 的方式使用带继承资源的自定义操作吗?

我们的 Location 模型有一个自定义操作 (:register)。支持代码与标准的 :update 非常相似。由于inherited_resources 为我们提供了“模板”,我们从actions.rb 中复制了更新代码,将“update_attributes”更改为“register”,flash 消息反映了不同的操作。这感觉不是很干燥。我们想使用:update 代替。有任何想法吗?

0 投票
1 回答
198 浏览

visual-studio-2008 - Visual Studio 2008 中的空设置项目

我有一个想要分发的 ClickOnce 安装。一些系统管理员更喜欢 MSI 安装包,它在运行时会安装 ClickOnce 应用程序。

我创建了一个 Visual Studio 2008 安装项目,该项目引用了一个我在其中实现了自定义操作的程序集。自定义操作可以安装 ClickOnce 应用程序,并且工作正常。

我的问题是安装完成后,客户现在有一个名为 C:\Program Files\Company\SetupName 的文件夹,其中包含自定义操作程序集。

我希望安装后不会在用户系统的 C:\Program Files 下留下任何文件。有没有办法做到这一点?

只需从“用户界面”列表中删除向导中的该步骤,就可以摆脱询问用户他想在哪里安装软件的问题,但软件仍将安装到目录中。

0 投票
1 回答
1432 浏览

visual-studio-2008 - 如何调试 MSI/安装项目中的自定义操作失败

对于自定义操作,我将 Name 设置为 XmlPreprocess.exe(一个 CodePlex 实用程序)

和参数:/x:"[SETTINGSFILE]" /i:"[TARGETDIR]web.config" /e:[ENVIRONMENTBUTTON] [CUSTOMSETTINGS] >[TARGETDIR]XmlPreProcess.log

SETTINGSFILE 应该来自我添加的自定义表单页面,而 ENVIRONMENTBUTTON 是我的一个单选按钮的值。

有没有办法让重定向工作?它不是创建 .log 文件。还有其他方法可以查看自定义操作的结果吗?我如何确认它是否运行?如果我想查看发送了哪些参数怎么办?

更新 3: - 有关我尝试过的更多场景,请参见此处: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId= 79454

谢谢,

尼尔

更新:我刚刚写了一个快速的 VBScript 来验证我的参数。

没有创建 VBScriptout.txt,所以我认为它甚至没有运行(所以我的猜测是 XmlPreprocess 甚至也没有运行)。

我将 InstalLVerification.vbs 文件作为“安装”下的自定义操作包含在内。我在属性窗口中设置了条件= True。我将 CustomActionData 设置为:“[SETTINGSFILE]”[ENVIRONMENTBUTTON]

更新2:我现在意识到条件不应该是“真”。我要么将其空白或将其设置为“未安装”。

我在 XmlPreprocess 上遇到一个无法解释的错误,我无法让 VBScript 运行。我也尝试使用 CScript64.exe 运行它。

0 投票
1 回答
780 浏览

.net - 安装后自动执行一个.exe文件

我有一个 .exe 文件,应在主应用程序安装完成后立即执行。

我知道这可以使用自定义操作来实现。我需要一些帮助来创建自定义操作。我正在使用 VS2008、.NET 3.5、

由于我是 c# 新手,如果建议详细,将帮助我更好地理解。

0 投票
2 回答
1390 浏览

visual-studio-2008 - 在 VS 设置自定义操作中使用 cmd.exe

我将自定义操作设置为 cmd.exe 并添加以下参数:

我正在尝试:

a) 停止命令屏幕,以便我可以阅读它

b)将结果写入文件,以便我可以读取它。

[ENVIRONMENTUTTON] 应该等于 QA - 我从显示 4 个单选按钮的对话框中选择。[SETTINGSFILE] 是一个用户输入的字段,也是一个对话框形式。

命令窗口一闪而过,我没时间看,也没有创建log.txt。

原来我试图只运行 XmlPreProcess.exe,但同样的问题,它给出了一个错误,我看不到调试它的错误。

相关问题: 了解 .MSI 详细跟踪 - 运行 CustomAction 如何调试 MSI/Setup 项目中的自定义操作失败

试过一次: msiexec /i "C:\MyPackage\Example.msi" /L*V "C:\log\example.log" 但也没有多大用处 - 只确认我的值在 [ SETTINGSFILE] 和 [ENVIRONMENTUTTON]。

我作为一个新问题发布,因为现在我正在专门处理 cmd.exe。

0 投票
4 回答
5455 浏览

windows-installer - 在 InstallValidate 之前安排 RemoveExistingProducts 自定义操作是否可以?

问题

我有一个 MSI,它在安装期间创建和启动 Windows 服务,并在卸载期间停止和删除该服务。这在自行安装和卸载时工作正常,但在升级时,会显示Files in Use对话框(仅在 Vista 及更高版本上,由于新的Restart Manager),表明该服务正在使用中。

背景

Files in Use对话框在InstallExecute序列期间由InstallValidate自定义操作显示,该操作安排在RemoveExistingProducts自定义操作之前;这意味着之前的版本尚未卸载,因此应显示“正在使用的文件”对话框。

MSDN 文档指出必须在InstallValidate操作之后安排RemoveExistingProducts操作,并且我目前在InstallValidate操作之后立即安排了RemoveExistingProducts操作。

潜在解决方案

我想将RemoveExistingProducts自定义操作重新安排到InstallValidate自定义操作之前,以便之前的安装有机会在显示“正在使用的文件”对话框之前停止并删除该服务。我尝试重新安排这些操作,它似乎可以正常工作,没有不良副作用(尽管日志仍然表明InstallValidate操作在RemoveExistingProducts操作之前执行),但我很犹豫是否使用此解决方案,因为它违反了 MSDN 文档,并且可能会有我还没有看到的不利影响。

有没有人试过这个?我能想到的唯一其他选择是让新安装停止旧安装的服务,但这是不可取的,因为它要求安装具有有关它可以升级的所有旧安装的信息(停止此特定服务可能涉及更多不仅仅是简单地调用服务管理器来停止它)。

0 投票
1 回答
535 浏览

windows-services - 部署项目中的自定义操作 - 提示用户输入值,然后从自定义操作中提取它们?

我正在构建一个 Windows 服务,它将部署在四台服务器上。我的用户想让服务从一个公共位置读取配置文件,并在 OnStart 上加载它。

我希望安装在安装服务时提示用户输入配置文件的文件路径和文件名,然后将该数据保存在 My.Settings 中。

我已经弄清楚如何在部署项目的 UI 中设置 EDITA1 和 EDITA2 变量,以便提示用户输入路径和文件名,但我不知道如何将这些值取出并放入服务的设置中.

请帮忙。

-詹妮弗

0 投票
1 回答
4845 浏览

wix - 在“LaunchConditions”之前对 WiX 中的自定义操作进行排序

是否可以在“LaunchConditions”之前对自定义操作进行排序?

这是我的自定义操作:

排序在<InstallExecuteSequence/>

我试过这个,在Orca中打开 MSI 文件,发现我的自定义操作顺序为“99”。但是当我尝试安装时,它从来没有被调用过。

我想在 LaunchConditions 之前安排这个,因为这个自定义操作应该设置在 LaunchCondition 中使用的属性(如果应用程序正在运行,请退出安装程序/更新程序)。

0 投票
2 回答
4881 浏览

c++ - WIX C++ 自定义操作

我有一个基本的 WIX 自定义操作:

添加到安装程序:

问题是,无论我做什么,句柄 hInstaller 都无效。我已将操作设置为提交、延迟、更改 InstallExecute 序列中的位置,hInstaller 始终无效。

任何帮助,将不胜感激。谢谢。

0 投票
1 回答
122 浏览

c# - 使用 MSI CustomAction 访问 AllUsers 选项

我有很多时间弄清楚如何从自定义操作中访问 AllUsers 选择。

谢谢!