문제

내 응용 프로그램이 제거되면 클라이언트에 할당 된 라이센스 키를 확보 할 수 있도록 서버에 통지해야합니다. 이것은 웹 서비스 호출을 통해 이루어집니다.

이 작업을 수행하는 C# 사용자 정의 액션을 만들었습니다. 문제는, 설치되지 않은 것이 DLL을 찾을 수 없다고 말하고 있다는 것입니다.

MSI의 오류 로그에는 다음 오류가 포함됩니다.

오류 1723.이 Windows Installer 패키지에는 문제가 있습니다. 이 설치에 필요한 DLL은 실행할 수 없습니다. 지원 담당자 또는 패키지 공급 업체에 문의하십시오. 액션 readlicensekeyfromfile, Entry : Readlicensekey, 라이브러리 : C : Windows Installer MSI4F42.tmp

기능을 맞춤 조치로 표시 한 기능이 있습니다. 사용자 정의 액션은 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 파일을 출력합니다. 파일을 설정의 일부로 설치하려고 시도했고, 파일을 수동으로 복사하고 파일에 아무것도하지 않았습니다 ... 기본적으로 가능한 모든 조합을 시도했습니다.

내가 놓친 것이 있어야하므로 도와주세요.

도움이 되었습니까?

해결책

이에 대한 모든 사람의 시간을 낭비해서 죄송합니다.

해결책은 너무 단순한 것이 었습니다. 이 특정 방법에 [Customaction] 속성을 배치하는 것을 잊었습니다. 그래서 그것이 내 CustomAction.cs 파일로 작성한 마지막 조치 였지만, InstallexeCutesequence에서 첫 번째로 호출되었습니다. 그리고 그 때문에, 나는 그것이 파일을 찾을 수 없다고 생각하는 것에 오도되었습니다. 글쎄, 그건 내가 정말로 졸리 었어 야 했어야한다는 사실 ...

어쨌든, 답을 찾는 동안 나는 많은 멋진 자료를 많이 발견했을 것입니다. Wix의 Alex Shevchuks 시리즈. 내가 깨달은 또 다른 것은 사용자 정의 작업 DLL 파일을 설치할 필요가 없다는 것입니다. 나는 단지 내 WIX 프로젝트에서 그것을 참조하고 그것에 대한 경로를 제공합니다. DLL은 설정에 내장되어 제거되지 않은 사용자 정의 작업을 호출 할 때 거기에서 스트리밍됩니다.

다른 팁

Uninstallca.ca.dll이 설치 중에 대상 시스템에 복사됩니까? 제거에없는 것 같습니다.

거기에 도착했다면 - 실행할 수 있습니까? (대상 시스템에서 실행하여해야 할 일을 할 수 있는지 확인하십시오. 아마도이 DLL을 배송해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top