私は数日間問題に直面しており、多くの調査の結果、自分のケースに合ったものを見つけることができませんでした.
これが問題です。私は、いくつかのプロジェクトとセットアップ プロジェクトを含むソリューションで Visual Studio 2010 を使用しています。製品をバージョン 1.5 からバージョン 1.6 に更新するために、セットアップ プロジェクトで MSI ファイルを作成する必要があります。
このチュートリアルhttp://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/に従い、ソリューションの各プロジェクトのアセンブリ バージョンとファイル バージョン番号も更新しました。
私のセットアッププロジェクト
の設定
は
次
の
とおりです 。
通常、MSI は既存のバージョンよりも新しいバージョンのファイルを削除し、新しいバージョンに置き換える必要があることを読みました。また、以前の MSI (製品を 1.4 から 1.5 に更新するもの) を実行すると、説明どおりに正常に動作します。(どのバージョンの Visual Studio でコンパイルされたかはわかりませんが、VS2008 であると思います)。
MSI を実行すると、最初に古い .exe を新しいものに置き換える「インストール シーケンス」が実行され、次に .exe を消去する「アンインストール シーケンス」が実行されるようです。そして、インストールが「終了」すると、アプリケーション ディレクトリに .exe がなくなります。(ただし、[プログラムの追加と削除] パネルでは、製品はバージョン 1.6 でインストールされたように表示されます)。
(NB : MSI の「インストール」部分または「アンインストール」部分が実行されていることに気付くことができます。これは、どちらにも、トレースできるコンソール アプリケーションを開くカスタム アクションがあるためです)。
さらに調査した結果、古い MSI と私の ORCA を比較したところ、テーブル InstallExecuteSequence に違いがあることに気付きまし
た。
私の MSI では、RemoveExistingProducts のシーケンス番号は6550で、InstallExecute (6500) と InstallFinalize (6600) の間にあります。
表に他の違いは見られません。
MSI の ORCA を手動で編集して、RemoveExistingProduct のシーケンス番号を 1525 に設定しようとしました。実行時に「アンインストール部分」は正しく実行されましたが、2356 エラーが発生しました (いくつかの調査の後、手動でMSI が破損しています)。
MSI の動作とその修正方法を説明するアイデアを誰かが持っている場合は?
ありがとう