Когда мое приложение удалено, сервер должен быть уведомлен, чтобы он мог освободить лицензионный ключ, назначенный клиенту. Это делается через вызов веб-службы.C# custom action in Wix
Я создал пользовательское действие 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 и проверить правильные символы, которые действительно экспортируются. /L – leiflundgren
Благодарим за сообщение вашего ответа, я просто сделал ту же самую (простую) ошибку, не осознавая ее, такое загадочное сообщение об ошибке! – si618