gpt4 book ai didi

Wix 中的 C# 自定义操作

转载 作者:可可西里 更新时间:2023-11-01 08:44:45 25 4
gpt4 key购买 nike

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

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

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

Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action ReadLicenseKeyFromFile, entry: ReadLicenseKey, library: C:\Windows\Installer\MSI4F42.tmp

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

<Custom Action="ReadLicenseKeyFromFile" After="InstallInitialize">
REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE
</Custom>

<CustomAction Id="ReadLicenseKeyFromFile" BinaryKey="UnInstallCA.CA.dll" DllEntry="ReadLicenseKey" Execute="immediate" Return="check" />

<Binary Id="UnInstallCA.CA.dll" SourceFile="$(var.UnInstallCA.TargetDir)UnInstallCA.CA.dll" />

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

一定是我遗漏了什么,所以请帮忙。

最佳答案

很抱歉浪费了大家的时间。

解决方案太简单了。我忘记将 [CustomAction] 属性放在这个特定方法上。因此,即使这是我在 CustomAction.cs 文件中编写的最后一个操作,它也是 InstallExecuteSequence 中调用的第一个操作。因此,我误以为它找不到文件。好吧,还有我一定是真的很困的事实……

无论如何,在寻找答案时,我确实遇到了很多不错的资源,尤其是 Alex Shevchuks series on Wix .我意识到的另一件事是我不必安装自定义操作 dll 文件。我只是从我的 Wix 项目中引用它并提供它的路径。该 dll 嵌入到设置中,并在调用卸载自定义操作时从那里流式传输。

关于Wix 中的 C# 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1213953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com