修正: Visual Studio 2008 から Visual Studio 2010 にメジャー アップグレードを行うセットアップ プロジェクトの MSI ファイルをインストールすると、インストール パスの Files キーとレジストリ キーが予期せず消える

適用先
Visual Studio 2010

現象

たとえば次のようなシナリオを考えてみます。

  • Microsoft Visual Studio 2008 セットアップ プロジェクトをビルドし、生成された MSI ファイルをインストール パスにインストールします。

  • セットアップ プロジェクトを Visual Studio 2010 に移行し、メジャー アップグレードに対して次のアクションを実行します。

    • ProductVersion プロパティのメジャー フィールドを変更する。
    • ProductCode プロパティを変更する。
    • RemovePreviousVersions プロパティを True に設定します。
  • セットアップ プロジェクトをリビルドし、生成された MSI ファイルを同じインストール パスにインストールします。

このシナリオでは、インストール パスのファイルとレジストリ キーが予期せず表示されなくなります。

原因

この問題は、Visual Studio 2010 で GUID の作成に別のハッシュ アルゴリズムが使用されているために発生します。 Visual Studio 2010 セットアップ プロジェクトから作成された MSI ファイルをインストールすると、MSI ファイルは GUID が変更されたと判断し、プロジェクトの順序に基づいてインストール パスのファイルとレジストリ キーを削除します。

解決策

この問題を解決するには、この修正プログラムを適用します。 この修正プログラムでは、 BackwardCompatibleIDGeneration プロパティが導入されています。 既定では、このプロパティは false に設定されています。 Visual Studio 2010 でセットアップ プロジェクトをビルドする前に、 BackwardCompatibleIDGeneration プロパティを明示的に True に設定して修正プログラムを有効にする必要があります。

修正プログラムの情報

マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、この資料で説明されている問題のみを修正することを目的としています。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。 この修正プログラムは、今後さらにテストを行う場合があります。 したがって、この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことを推奨します。

この問題を直ちに解決するには、Microsoft Customer Support Services に連絡して修正プログラムを入手してください。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。

http://support.microsoft.com/contactus/?ws=support注: Microsoft サポート担当者が、特定の更新プログラムを適用することにより問題が解決されると判断した場合、まれに通常サポート依頼にかかる料金が免除されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。

この修正プログラムを MSDN コード ギャラリーからダウンロードするには、次のマイクロソフト Web サイトを参照してください。

http://code.msdn.microsoft.com/KB2418919
注: 修正プログラムを使用できる言語は MSDN コード ギャラリーに表示されます。 目的の言語が一覧に表示されない場合は、コード ギャラリー リソース ページでその言語を使用できないためです。

または、次の Microsoft Connect Web サイトからこの修正プログラムをダウンロードすることもできます。

https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=32676
          

前提条件

この修正プログラムを適用するには、Visual Studio 2010 がインストールされている必要があります。

再起動に関する情報

この修正プログラムの適用後、コンピュータの再起動が必要な場合があります。 この修正プログラムを適用する前に、Visual Studio または Microsoft .NET Framework アプリケーションのインスタンスをすべて終了することをお勧めします。

修正プログラムの置き換えに関する情報

この修正プログラムを適用しても、以前にリリースされた修正プログラムが置き換えられることはありません。

ファイル情報

この修正プログラムのグローバル版では、次の表に示す各属性を持つファイル群がインストールされます。 これらのファイルの日付と時刻は世界協定時刻 (UTC) で記載されています。 お使いのコンピューターでは、これらのファイルの日付と時刻は夏時間 (DST) 調整済みのローカル時刻で表示されます。 さらに、ファイルに対して特定の操作を実行すると、日時が変更される場合があります。

ファイル名 ファイルのバージョン ファイル サイズ 日付 時刻 プラットフォーム
Dpca.dll 10.0.30319.464 236,872 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 145,232 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 145,744 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 146,256 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 147,280 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 147,792 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 148,304 2011 年 5 月 11 日 1,308 x86
Dpdpl.dll 10.0.30319.464 904,520 2011 年 5 月 11 日 1,308 x86
Dpedt.dll 10.0.30319.464 696,136 2011 年 5 月 11 日 1,308 x86
Dpplg.dll 10.0.30319.464 2,606,408 2011 年 5 月 11 日 1,308 x86
Dpprj.dll 10.0.30319.464 1,229,640 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 163,152 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 163,664 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 167,248 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 168,272 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 178,000 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 178,512 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 180,560 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 181,072 2011 年 5 月 11 日 1,308 x86
Dpprjui.dll 10.0.30319.464 181,584 2011 年 5 月 11 日 1,308 x86
Projectsidl3.tlb 適用外 2,816 2011 年 5 月 10 日 03:47 適用外

              

回避策

この問題を回避するには、次のいずれかの方法を使用します。

  • 方法 1: すべてのコンポーネントの GUID を Visual Studio 2008 の GUID と同じに手動で変更します。

  • 方法 2: InstallInitialize アクションの後に RemoveExistingProducts アクションを再シーケンスします。 これにより、古いファイルが削除され、新しいバージョンで再インストールされます。

    注: 共有コンポーネントがある場合、このメソッドは機能しません。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

824684 Microsoft のソフトウェア更新プログラムの説明で使用される一般的な用語の解説