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 を実行するときに署名を参照するにはどうすればよいでしょうか。

4

2 に答える 2

1

あなたが使用している *.CA.DLL 命名法から、これは DTF カスタム アクションであると思います。これは、マネージ DLL をホストするネイティブ カプセル化 DLL です。ネイティブであるため、厳密な名前を付けることはできません。

インストールをログに記録し、失敗した理由をログで確認します。

于 2012-04-16T15:38:03.270 に答える
0

私の問題の解決策は、.NET 4 でサポートされていない廃止されたライブラリによって引き起こされたセキュリティの問題でした。これは別のトピックであるため、誰かが興味を持っていない限り、詳細には触れません。

于 2012-04-16T15:52:35.547 に答える