0

過去 2 週間以内に、特定のプロジェクトの最新のビルドが [プログラムの追加と削除] に表示されないことに気付きました。

私はVisual Studio 2010、Windows7 64ビットを使用しています(ただし、2台のWindows 32ビットマシンでもこれを試しました)。最新のサービス パックと更新プログラムがすべてインストールされます。このソリューションは、さまざまな参照を含む複数のプロジェクトで構成されています。Setup and Deployment プロジェクトは Install Shield バージョンではなく、Microsoft プロジェクトでビルドされたものです。

以前のバージョンのソフトウェアは正常にインストールされ、今でも機能します... しかし、タグ付けされた以前のバージョンを CVS から取得して、それらのバージョンのインストーラを再構築すると、どちらも機能しません。

Orca で MSI を開くと、ARPNOREMOVE と ARPSYSTEMCOMPONENT の両方が 1 に設定されていることがわかります。プロジェクトがインストールされると、レジストリ エントリ SystemComponent Dword 値が作成されます。そのレジストリ エントリを削除すると、アプリケーションが表示されます。私が読んで調査したすべてに基づいて、この機能を望んでいる人を見つけましたが、Visual Studio だけではこれを行うことができないと言われました。彼らの解決策は、Orca を使用して ARPNOREMOVE または ARPSYSTEMCOMPONENT を追加することでした。この時点で、私が見つけたすべての人が私の問題を抱えていて、基本的なデフォルトのインストーラーを持っていて、プログラムの追加と削除で探している名前を知らなかったか、私の状況には当てはまらないその他の基本的なエラーが発生しました。 .

私は次のすべてを試しました:

- CVS 上のタグ付きバージョンの以前のバージョン

-複数の開発マシン

-複数のコンピューターが [プログラムの追加と削除] に表示されないことを確認する

-すべての Visual Studio 設定のリセット

-クリーンな開発環境からの構築

-ソリューションからインストーラー プロジェクトを削除し、新しいインストーラー プロジェクトを作成する

奇妙な点は、新しいソリューションを作成し、その中にセットアップおよび展開プロジェクトを作成すると、問題なくインストールされることです。これについて何か考えている人は誰でも私を助けることができますか?

4

2 に答える 2

1

これが私が見つけたものです。.Net および従来のコントロールには National Instruments Measurement Studio を使用しています。レガシ コントロールを使用すると、特定のマージ モジュールが依存関係として認識されます。なんらかの理由で、このマージ モジュールは、コンパイルされたインストーラーの動作を変更します。私はナショナルインスツルメンツに連絡を取り、現在彼らと協力しています。

于 2013-07-12T11:52:34.397 に答える
0

まず、はい、正しいプロパティ名を見つけました。はい。また、結果の「SystemComponent」エントリを後でレジストリに設定/変更することもできますが、これはすべてのプロパティに当てはまるわけではありません。

ARPNOREMOVE は、ARP でのアンインストールが本当に実行可能かどうかを制御するだけです。

Visual Installer は MSI の専門家にとって非常に限られているため、以前に実際に調べたことがありますが、ざっと見てみると、VS 2010 で作成された .vdproj (プロジェクト ファイル) があり、それほど驚くことではありませんが、すべての MSI 情報がそこにコーディングされています。 . ソリューション エクスプローラーに表示されるビジュアル セットアップ エディターは、サブセットに過ぎません。「ARP」を探すだけで、いくつかのプロパティが設定されていることがわかります。値の意味を推測するのは簡単ではないかもしれませんが、合理的な観点からは次のようになります。

そこにはいくつかの設定があるか、そのプロパティを設定するカスタム アクション (そこにもリストされています) があります!

ウィザードを使用した最小限のテストでは、結果の msi ファイルで ARPCONTACT プロパティのみが設定されました。

少なくとも、.vdproj ファイルを他のチェックイン バージョンと比較することができます。

于 2013-07-11T16:37:44.697 に答える