/ MSIインストールで作成されたショートカットが毎回セットアッププロセスを再開するのはなぜですか。 - c#、.net、windows-installer

私のMSIインストールで作成されたショートカットが、毎回セットアッププロセスを再度開始するのはなぜですか? - c#、.net、windows-installer

C#アプリケーション用にMSIインストーラを作成しましたVS 2008経由。インストールしました。それは私のためにデスクトップ上にショートカットを作成しました。そのショートカットをクリックすると、セットアッププロセスが再び実行され、最後にアプリケーションが起動されました。データベースを作成するためのカスタムアクションを追加する前は、昨日のようにはなりませんでした。インストーラでショートカットを再作成できませんでした。このような理由は何ですか。

回答:

回答№1は5

MSIには、ショートカットを使用してアプリケーションを起動したときにMSIによってインストールされたすべてのコンポーネントがまだ存在するかどうかを確認する自動修復機能が付属しています。

あなたのケースでは、おそらく1つ(またはそれ以上)のコンポーネントが削除されたので、インストーラーはあなたのインストールを修復するために再び起動されます。

自動修復が実行されないようにする

  • ファイル、レジストリ設定、その他のインストール済みコンポーネントが削除されていないことを確認してください。

または

  • これらのコンポーネントのキーパスを設定しないでください。MSIがそれらの特定のコンポーネントをチェックできなくなります。

あなたの他の質問からそれはあなたのMSIのようですVisual Studioのセットアップと展開プロジェクトによって作成されています。残念ながら、Visual Studio内からキーパスを変更することはできません。以下の選択肢があります。

  • Orcaを使用してMSIを手動で変更します(これは手動の手順であるため、これは適切な方法ではありません)
  • スクリプトを書くVBScriptを使用してMSIファイルにパッチを適用する
  • WiXやNSISなど、より高度な制御を可能にする、より高度なインストールシステムへ

回答№2の6

Orcaを使用してMSIを手動で開きます。次のレコードを引用符なしでPropertyテーブル(Property、Value)に追加します。

プロパティ= "DISABLEADVTSHORTCUTS" 値= "1"

これはスクリプト化してビルド後のイベントの一部として実行することもできます。


回答№3の場合は1

ショートカットはアプリケーションまたはセットアップを指していますか?それがあなたの設定を指していてあなたがそれをあなたのアプリケーションに変更した場合、問題は解決しますか?


回答№4の場合は1

システムが、インストールが破損していると自動的に修復を試みていると考えているようです。

あなたは複数のコピーを作っていますか?


回答№5の場合は1

これは、アプリケーションがインストール中にデプロイされたファイルを削除したときに起こります。自動修復が有効になっているため、インストール画面が表示されます。


答え№6の場合は0

同じ問題がありました。 私の場合、問題はDeoplyment Projectプロパティの中の "Manufacturer"と "ProductName"フィールドでした。ショートカットが指しているフォルダ構造と同じである必要があります。そうしないと、イベントビューア内で "リソース" C:Program Files(x86)[製造元] [ProductName]が存在しません "というエラーが表示されます。 。