2012-04-16 4 views
0

나는 사용자 지정 작업 DLL을 실행하는 사용자 지정 작업을하지만 실패하고 나는 그것이 강력한 이름의 어셈블리를 읽는 방법을 모르기 때문에 믿을

그래서 나는 이것을 가지고있다 :

<Binary Id="StrongName" SourceFile="$(var.MyProject.TargetDir)MyProject.CA.dll"/> 

    <CustomAction Id="CreateIt" 
       BinaryKey="StrongName" 
       DllEntry="Create" 
       Execute="deferred" 
       Return="check" 
       HideTarget="no" 
       Impersonate="no" /> 

    <CustomAction Id="RemoveIt" 
       BinaryKey="StrongName" 
       DllEntry="Remove" 
       Execute="deferred" 
       Return="check" 
       HideTarget="no" 
       Impersonate="no" /> 

    <InstallExecuteSequence> 
      <Custom Action="CreateIt" Before="InstallFinalize">(NOT REMOVE =  "ALL")</Custom> 
      <Custom Action="RemoveIt" Before='InstallFinalize'>(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom> 
    </InstallExecuteSequence> 

그럼이 DLL을 실행할 때 어떻게 서명을 참조 할 수 있습니까?

+0

그건 그렇고, 내가 가진 유일한 오류입니다. 오류로 인해 마법사가 일찍 종료되었습니다. 나는 더 이상 세부 사항이 없으며 자세한 내용을 얻는 방법을 모르겠습니다. – Pittfall

+0

Windows Installer 로깅을 사용하도록 설정하면 .net 스택 덤프를 포함하여 모든 종류의 오류 정보를 받아야합니다. –

답변

0

내 문제의 해결책은 .NET 4에서 지원되지 않는 오래된 라이브러리로 인해 발생하는 보안 문제 였고 다른 주제이기 때문에 누군가 궁금하지 않으면 자세히 다루지 않을 것입니다.

1

DTF 사용자 지정 동작이라는 것을 사용하고있는 * .CA.DLL 명명법을 가정합니다. 이것은 관리되는 DLL을 호스팅하는 네이티브 캡슐화 된 DLL입니다. 네이티브이기 때문에 강력한 이름을 지정할 수 없습니다.

설치를 로그하고 실패 이유를 로그에서 확인하십시오.