2010-12-30 16 views
3

私のアプリケーション用にVisual Studio 2008経由でMSIセットアップを作成し、Windows起動時にwindows \ runにレジストリキーを追加しましたが、アプリケーションで自動起動を無効にする機能も実装しました。ただし、アプリケーションを再起動すると、キーは自動的に修復されます。MSIがレジストリキーの修復を防止する

MSIがキーを修復するのを防ぐ方法はありますか?

ありがとうございました!

+0

の可能複製(http://stackoverflow.com/questions/2596431/msi-installer-start-auto-repair-when-service-starts)[MSIインストーラは、サービスの開始時に自動修復を開始] –

答えて

2

レジストリキーがパッケージによってインストールされ、Windowsインストーラーが存在する必要があることがわかっているため、レジストリキーが修復されます。可能な解決策は次のとおりです。

  1. コンポーネントIDを持たない別のコンポーネントにエントリを移動します。この方法では、コンポーネントはWindowsインストーラーに登録されません。
  2. カスタムアクションを使用して、インストール中にレジストリエントリを作成します。
+0

感謝しかし、私はどちらかを行う方法がわかりません。説明してもらえますか?私は、Visual Studioが私にカスタムアクションでそのようなことを提供していないので、そのためのカスタムアクションを作成する方法ではなく、エントリのコンポーネントIDを選択する方法を知らない... – Marin

+0

Orcaでコンポーネントを編集することができますまたはより強力なツールを使用してください。 Visual Studioは、インストーラの作成に関しては非常に限られています。カスタムアクションはカスタムコードを使用できます。たとえば、レジ​​ストリエントリを処理するEXEを作成することができます。 EXEを作成したら、セットアッププロジェクトでカスタムアクションとして追加できます。 –

関連する問題