我正在编写一个在卸载时运行的自定义操作(在c#中)。
<Custom Action='My_CA' After='InstallInitialize'>Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
在我的自定义操作中,我需要使用安装文件夹中的.dll中定义的API,所以我写了这一行:
[DllImport("myAPI.dll", CallingConvention = CallingConvention.Cdecl)]
正如您所看到的,我尝试仅使用dll名称,但卸载日志显示“无法加载DLL'myAPI.dll':找不到指定的模块”。我想我需要使用相对于安装文件夹的路径而不仅仅是dll名称,但我找不到如何编写它的语法。 谁能告诉我如何从c#自定义操作引用到安装文件夹?
答案 0 :(得分:0)
您尚未在CA中定义“执行”,默认值是立即意味着它在安装任何文件之前运行。您需要执行值“deferred”。
在InstallFiles操作之后,您还需要它,以便文件存在。