2014-09-18 110 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