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

c# - Wix 中的 C# 自定义操作

当我的应用程序被卸载时,需要通知服务器,以便它可以释放分配给客户端的许可证密钥。这是通过 Web 服务调用完成的。

我创建了一个 C# 自定义操作来执行此操作。问题是,卸载程序退出说它找不到 dll。

msi 的错误日志包含以下错误:

错误 1723。此 Windows 安装程序包有问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或软件包供应商。操作 ReadLicenseKeyFromFile,条目:ReadLicenseKey,库:C:\Windows\Installer\MSI4F42.tmp

我将函数 ReadLicenseKey 标记为自定义操作。自定义操作名为 ReadLicenseKeyFromFile。

自定义操作项目正在输出 .CA.dll 文件。我已经尝试将文件安装为设置的一部分,手动复制粘贴的文件,对文件没有做任何事情......基本上尝试了所有可能的组合。

一定有什么我想念的东西,所以请帮忙。

0 投票
1 回答
776 浏览

64-bit - 从基本 msi 项目 Installshield 2009 Premier 准备一个 64 位 setup.exe

我通过设置每个组件的 64 位组件 = yes 并设置“一般信息->摘要信息流->模板摘要 = x64;1033”来部署 64 位 dll、exe。一切正常,但是当我运行它时生成的 setup.exe,从任务管理器中我注意到它是一个 32 位 exe。如何使它成为一个64位的exe?

为什么我想这样做:在自定义操作中,我调用了一些托管 dll(64 位)的方法并将一些注册表写入 Software/MyApp,问题是 setup.exe(32 位)加载了最终写入 Software/Wow6432Node/MyApp 的 dll。是的,我可以用 64 位 exe 替换 dll,但我们不能将 setup.exe 设为 64 位吗?

0 投票
6 回答
22037 浏览

django - 如何测试自定义 django-admin 命令

我创建了自定义 django-admin 命令

但是,我不知道如何在标准 django 测试中测试它

0 投票
1 回答
1626 浏览

wix - WiX VC++ Redist SourceFile [CommonFilesFolder]

我正在尝试将 Microsoft_VC90_CRT_x86 合并模块添加到我的 WiX 安装程序,但在指定 SourceFile 时遇到问题。我不想在我的 make 脚本中复制构建范围内的 .msm 文件,我想访问它在构建系统上的 .msm 文件(C:\Program Files\Common Files\Merge Modules)。尽管 [CommonFilesFolder] 是一个“特殊”的 WiX 变量,但我似乎无法使用它来指定 SourceFile,如下所示:

0 投票
1 回答
3707 浏览

c# - 在 .MSI 自定义操作中安装证书无法正常工作

我正在尝试以自定义操作在本地机器存储中安装证书。证书已安装,但当我使用它查询 AWS 时,出现此错误:

对象仅包含密钥对的公共部分。还必须提供私钥。

安装程序正在运行提升,目标是 Windows Vista。

如果我使用单独的 .exe 安装完全相同的证书,使用完全相同的代码,它可以工作。那么使用 Windows Installer 安装证书有什么不同呢?

编码:

0 投票
2 回答
700 浏览

.net - .NET 部署项目:取消卸载程序的自定义操作

我有一个 .NET 部署项目。我想添加一个自定义卸载操作来检查某些条件并可选择取消卸载。那可能吗?

据我所知,只能定义不能影响主安装程序本身的自定义操作。

0 投票
3 回答
11043 浏览

sharepoint - 如何在 SharePoint 中以编程方式添加自定义菜单操作?

我需要在 c# 中以编程方式将自定义菜单操作添加到自定义内容类型。这是因为我不会事先知道需要链接的 URL。激活该功能时,将从配置中提取要链接的 URL。我尝试了以下方法:

在我的 Element.xml 文件中添加了 CustomAction:

在我的功能接收器 FeatureActivated 方法中,我有:

我希望这段代码能用“MY URL”更新 UrlAction Url,但事实并非如此。如果我在 XML 中硬编码一个 URL,它可以工作,但我必须能够以编程方式完成它。

0 投票
2 回答
1281 浏览

.net - 在安装程序类中获取应用程序目录

如何从自定义安装程序类中获取应用程序安装到的目录?

我们试图解决的是多个环境的 *.config 文件的古老问题。我们正在考虑的一个想法是将配置存储在网络共享上,安装程序将复制正确的配置。目前我们使用Scott Gu 的博客中描述的方法,但我们希望文件不在开发人员手中。

0 投票
2 回答
731 浏览

c# - 如果我删除我的文件,Wix 不会删除它的文件

我有一个 Wix 安装程序,如果我不执行我的自定义操作,它可以很好地安装和删除。但是,如果我确实执行了它们,那么我的自定义操作就可以完成它的工作,并且卸载确实成功,但是安装的所有文件都保留在程序文件应用程序目录中。

安装时,我的自定义操作 (After="InstallFiles") 将一些文件从 Zip 提取到主安装目录下的目录中。我还捕获了提取(添加)的所有文件的列表。这完美地工作。

卸载时,我的自定义操作 (After="MsiUnpublishAssemblies") 会遍历列表并删除添加的文件、添加的子目录和文件列表本身。这工作正常 - 我添加的文件被删除。但是,即使安装程序完成了所有步骤(据我从日志文件中得知)并成功结束,安装程序最初安装的主要文件仍然存在。

任何想法在这里都会有很大的帮助。

谢谢!

更新:我暂时用蛮力的方式解决了这个问题,但我仍然想要一个真正的答案。这是我的蛮力代码。我用我的 InstallDir 的 DirectoryInfo 来调用它。

0 投票
2 回答
4202 浏览

vbscript - 如何在没有为 MSI 定义会话的 cmd 行上捕获 VBScript 运行时错误“需要对象:'会话'”

.msi为自定义安装程序操作编写脚本。当安装程序调用我的脚本时,您可以通过以下方式获取安装程序属性Session.Property("PropName")

如果您不通过安装程序调用,则会出现运行时异常。我想要我的脚本,这样我就可以在没有安装程序的情况下进行开发和调试。我如何捕捉到这个错误?

我想做类似的事情: