0

シナリオ:

  • .vdproj インストーラーがあります (実際には、マージ モジュールを備えた多数のインストーラーがありますが、これは単純にしておきましょう)。
  • 当社の製品の新しいリリースがあります。
  • 製品コードを変更し、コードとバージョンをアップグレードし、AssemblyInfos と COM インターフェイスを再ガイドし、デフォルトのインストール場所を変更しました。

すべてが正常に表示され、プログラムはサイド バイ サイドで動作します。ただし、アンインストール時に、両方のバージョンが同時にインストールされている場合、プログラム メニューとデスクトップ ショートカットは削除されません。(参照カウントのにおいがしますか?)。

これは表面的な問題ですが、調べてみることにしました。Orca では、ファイルの ComponentId が同じであることに気付きました。

[TARGETDIR]\myfileこれらは、実際の展開された ではなく、 に基づくハッシュのようTARGETDIRです。

たとえば、 myはインストール時にTARGETDIR効果的に異なります。c:\program files\myCompany\v1.0\myfilec:\program files\myCompany\v2.0\myfile

しかし、インストーラー プロジェクトに関しては、そのハッシュ オフに基づいていると思いますTARGETDIR\filename

私はそれを発見しました

  • 出力ファイルの名前を変更しmyfile2て別の ComponentId を生成する
  • TARGETDIRまたは、インストールで呼び出されたのサブフォルダーを作成するとv2.0、別の ComponentId が生成されます。しかし、それがどのような影響を与えるかはわかりません。

何が起こっているのかを正しく解釈しましたか?これが私の唯一の回避策ですか? トップレベルのフォルダを として共有するリスクは何TARGETDIRですか?

Microsoft はこの VS2015 コンポーネントを 1 年以上更新しておらず、オープン ソース化もしていません。

更新 これは、最上位のインストーラーではなく、マージ モジュールのみの問題のようです。

4

1 に答える 1