0

インストールの一部として InstallerClass を実行する必要があるこのプロジェクトがあります。

カスタムアクションとして追加しましたが、何年もの間そのように機能しています。このクラスをメンテナンスし、ソリューションをクリーンアップし、ソリューションを再構築したところ、カスタム アクションがトリガーされなくなりました。

クリーニングの前に呼び出しが機能していたため、それらがトリガーされていないことはわかっていDebugger.Break()ます。また、作成されるはずのレジストリエントリが作成されていないという事実があります。

何が起こっている?MSI インストーラーから詳細情報を取得するにはどうすればよいですか?

価値があるのは、私のマシンは64ビットですが、プロジェクトは平均的であり、32ビット(x86)としてビルドされています。以前はAny CPUとしてビルドしていましたが、今では何を使ってビルドしても結果はありません。

さらに調査を行ったところDebugger.Break();、依存関係の問題が原因で機能しなくなった可能性があることがわかりましたが、プロジェクトでエラーや警告は表示されませんでした。私は MSI を詳細に実行しましたが、それから何かを作ることもできません。

ログで迷子になった後、何も役に立ちませんでした。もう一度最初からやり直して、ポップ ウィンドウを持つ新しい Installer クラスを作成しました。それは働いた。その後 Break() を追加しましたが、それも機能し、実行したい using Process ステートメントを追加し、機能しました... 一度。

その後、私は次のことを発見しました: そのままにしてDebugger.Break()おくとスキップされますが、削除すると機能します...

はい、これはランダムです...どうしたのですか?

4

2 に答える 2

0

最初にソース管理でインストーラーに加えられた変更を確認する価値があります。

いずれにせよ、私はインストーラーがおかしな動作をするさまざまなケースを見てきました。いくつかの提案:

  • base.Install が最後であることを確認します。
  • VS を管理者として実行します。
  • インストーラー プロジェクトを再作成します (破損する可能性があります)。
于 2013-05-07T22:10:45.473 に答える