0

MSI インストールのアップグレードに関連する奇妙な現象が発生しています。おそらく誰かが私を助けてくれます:

オリジナルとアップグレードの 2 つの MSI があります。

  • MSI バージョン 1.0
    • GAC にインストールされる .NET アセンブリ foo.dll が含まれています。
    • foo.dll は、MSI ファイル システム GUI 内で「アセンブリ」タイプ (「出力」ではありません) です。
  • MSI バージョン 2.0
    • foo.dll (同じバージョン) と追加のアセンブリも含まれています。
    • MSI 2.0 で 1.0 を完全に置き換えたいので、RemovePerviousVersion を False に設定します。

2 つのインストール シナリオ:

  1. MSI 1.0 を実行しています。Foo.dll が GAC に正しくインストールされている。次に MSI 2.0 を実行すると、Foo.dll が GAC から削除されたように見えますが、追加のアセンブリがそこにあります。方法がわかりません。ただし、[プログラムの追加と削除] に移動して [修復] をクリックすると、Foo.dll が挿入されます。

  2. MSI 1.0 はインストールされておらず、MSI 2.0 を実行しています。予想どおり、Foo.dll (および追加のアセンブリ)存在します。

アップグレード中に foo.dll が削除される理由はありますか?? 前もって感謝します!

-ケン

更新更新 /再構築の後、現在は機能しているようです。ただし、プロパティ「Permanent」が false に設定されていても、MSI をアンインストールしても foo.dll は削除されません。それほど大きな問題ではありませんが、何が起こっているのかを知ることができれば幸いです。

4

1 に答える 1

0

奇妙さを修正するために、私は次のことをすることになりました:

  1. WindowsSDKの一部であるOrca.exeをインストールしました。
  2. ビルド後、Orcaを介してProperyテーブルにREINSTALLMODE=amusを追加しました。

これにより、当面の問題が解決し、発生していたインストール/アンインストールの問題が修正されました。唯一の問題は、これが手動プロセスであるということです。次のステップでは、これを何らかの方法で自動ビルド後イベントの一部にします。

于 2009-12-22T21:04:19.950 に答える