卸載應用程序時,需要通知服務器,以便它可以釋放分配給客戶端的許可證密鑰。這是通過Web服務調用完成的。Wix中的C#自定義操作
我創建了一個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文件。我已經嘗試安裝文件作爲安裝的一部分,手動複製粘貼文件,對文件沒有做任何事情......基本上嘗試了所有可能的組合。
必須有我丟失的東西,所以請幫助。
是的,安裝DLL在安裝時被複制。 不,我不知道如何模擬dll的使用。如果你的意思是通過創建一個引用dll的新項目然後調用該函數,那麼發生。 – 2009-07-31 20:35:31
@Anton Tykhyy - 我被告知你在一個小時前發佈了一個我的問題的答案,但我看不到那個答案。從我的檔案中,我只能看到答案的一部分。 自定義操作項目正在從DTF運行必需的實用工具,該工具將託管的dll轉換爲非託管的.CA.dll。和這個.CA.dll是我正在安裝與我的設置一起。有無論如何,我可以檢查什麼路徑是設置看着找到DLL? – 2009-07-31 20:41:27