1

インストール中に他の dll によって使用される wix インストーラーに .dll を埋め込もうとしていますが、顧客のシステムにはインストールされません。

私は現在持っている

<Binary Id="AutomationUtils" SourceFile="AutomationUtils\bin\Release\AutomationUtils.dll" />
...
<CustomAction Id="Install" BinaryKey="InstallUILib" DllEntry="AutomationUtils;RunInstallerDLL" Return="check" Execute="deferred" />

しかし、他の.dllを取り出しても、WiXはAutomationUtilsの存在を認めることを拒否します..正常にビルドされても(ただし、実行しようとすると失敗します)。

4

1 に答える 1

4

はを持つ要素をBinaryKey='InstallUILib'参照します。この属性は、要素内のカスタム アクション .dll への関数エントリ ポイントの名前です。その名前には、::GetProcAddress()がアクセスできる必要があります。という名前の関数が無効であると確信しています。BinaryId='InstallUILib'CustomAction/@DllEntryBinaryAutomationUtils;RunInstallerDLL

マネージ コードのカスタム アクション (おそらく複数の .dll が必要な場合) を実行しようとしている場合は、この記事で問題ありません。それ以外の場合は、ネイティブ カスタム アクションを作成する場合は、単一の .dll を作成することをお勧めします。

于 2013-03-14T15:33:27.877 に答える