2014-09-18 87 views
0

我正在编写一个在卸载时运行的自定义操作(在C#中)。WIX-指自定义操作的安装路径

<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

您尚未在您的CA中定义“执行”,默认值是立即表示它在任何文件安装之前运行。你需要一个“延迟”的执行值。

在InstallFiles操作之后您还需要它,以便文件在那里。

+0

我已经在自定义操作中定义了执行,但是我没有写这段代码。无论如何,我的“执行”是直接的,因为我写的CA应该在卸载时运行。在卸载所有文件之前,请在安装文件夹中(卸载时,所有文件都已在安装文件夹中)。 – eskadi 2014-09-28 08:49:36