単一の DLL (C# 3.5) に依存する C# (.NET 3.5) で記述されたカスタム アクションを実行しようとしています。インストールに .EXE と .DLL の両方を含め、それらがインストール場所にコピーされていることを確認しました。ただし、カスタム アクションを実行しようとするたびに、次のエラーが発生します。
アクション開始 7:21:16: InstallFinalize。エラー 1721。この Windows インストーラー パッケージには問題があります。このインストールを完了するために必要なプログラムを実行できませんでした。サポート担当者またはパッケージ ベンダーにお問い合わせください。アクション: UpgradeTo022、場所: C:\Program Files\Test\、コマンド: Upgrade-0.2.2.EXE MSI (s) (CC:38) [07:21:19:061]: 製品: テスト -- エラー 1721 . この Windows インストーラー パッケージには問題があります。このインストールを完了するために必要なプログラムを実行できませんでした。サポート担当者またはパッケージ ベンダーにお問い合わせください。アクション: UpgradeTo022、場所: C:\Program Files\Test\、コマンド: Upgrade-0.2.2.EXE
カスタム アクションは次のように定義されます。
<CustomAction Id="UpgradeTo022"
Directory="INSTALLLOCATION"
Impersonate="no"
Execute="deferred"
ExeCommand='Upgrade-0.2.2.EXE'>
注: カスタム アクションは昇格された権限で実行する必要があるため、遅延実行と Impersonate="no" 属性があります。
以下のように予定されています。
<InstallExecuteSequence>
<Custom Action="UpgradeTo022" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
ファイルは次のようにインストールされます。
<Component Id="CMP_UpgradeCommon" Guid="8ECF5076-732E-4010-A33B-BE362D818949" Win64="yes">
<File Id="FILE_UpgradeCommonDLL"
Source="..\Upgrade\UpgradeCommon\bin\Debug\UpgradeCommon.dll" Vital="yes"/>
</Component>
マネージ EXE の実行がカスタム アクションと MSIS の問題であるという暗示をいくつか見てきましたが、実際の決定的な答えはありません。
また、カスタム アクションとして依存関係のない非常に単純な .EXE を実行しようとしましたが、うまくいきませんでした。
インストーラー パッケージの作成に少し慣れていないので、サポートされていないことをしようとしているか、簡単なことを見逃している可能性が非常に高いです。
これを理解するための指針を事前に感謝します。
JT。