web-dev-qa-db-ja.com

Visual Studio 2012またはVisual Studio 2013で古いMVCプロジェクトを開くにはどうすればよいですか?

MVC 3またはMVC 4にアップグレードしたくない古いASP.NET MVC 2プロジェクトがあります。Windows8、Visual Studio 2012、およびVisual Studio 2013を実行している新しいマシンで作業しています。MVCを開こうとするとVS 2012またはVS 2013の2つのプロジェクトでエラーが表示されます:

このプロジェクトは、Visual Studioの現在のエディションと互換性がありません

その後、プロジェクトがアンロードされ、ソリューションエクスプローラーでグレー表示されます。 Visual Studioの別のコピーをインストールしたくない。 Visual Studioの新しいバージョンで古いMVCプロジェクトを開くにはどうすればよいですか?

152
ahsteele

サポートされていないMVCプロジェクトを Visual Studio 2012 またはVisual Studio 2013で開くことは、実際には2つの手順で簡単に実行できます。実際、 bytebenderのコメントが示す のように、これらの同じ手順shouldが適用されますMVC 1プロジェクトに参加して作業します。しかし、私はそれらをテストしていないため、実際に機能することを保証できません。

まだ行っていないことを前提に、ステップ1は MVC 1MVC 2 または MVC (開始する前にVisual Studioを閉じるインストール)。

MVCの適切なフレーバーをインストールしても、VS 2012でプロジェクトはロードされません。これは、ASP.NET MVCプロジェクトがWebアプリケーションプロジェクトタイプの プロジェクトサブタイプ であるためです。これは、Visual Studio内で使用する場合、プロジェクトに追加のアドインと機能を使用できることを意味します。

Visual Studio 2012とVisual Studio 2013は、ASP.NET MVCおよび他のプロジェクトタイプとの下位互換性が制限されています。残念ながら、古いMVCビットをインストールしても変更されませんでした。 Visual Studio 2012は互換性があります ASP.NET MVC 3および4プロジェクトフレーバーと。 Visual Studio 2013は互換性があります MVC 4およびMVC 5.

プロジェクトをロードするには、プロジェクトファイルを変更する必要があります。これを行うには、アンロードされたプロジェクトを右クリックして、[編集]を選択します。プロジェクトファイルをXMLテキストファイルとして開きます。次のようなProjectTypeGuidsノードを見つけます。

<ProjectTypeGuids>
    {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

リストから適切なプロジェクトガイドを削除します。

  • ASP.NET MVC 1:{603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2:{F85E285D-A4E0-4152-9332-AB1D724D3325}(上記の例に示す)
  • ASP.NET MVC 3:{E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4:{E3E379DF-F4C6-4180-9B81-6769533ABE47}

適切なGUIDを削除すると、ProjectTypeGuidsは次のようになります。

<ProjectTypeGuids>
    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

ファイルを保存し、Visual Studioプロジェクトファイルエディターを閉じます。プロジェクトを右クリックして、リロードを選択します。プロジェクトがリロードされない場合、Visual Studioを閉じて再度開きます。これで、新しいバージョンのVisual Studioで古いASP.NET MVCプロジェクトを操作できるようになります。

注意すべき重要な点は、これらの変更後、Visual StudioはこれがASP.NET MVCプロジェクトであることを認識しないことです。したがって、「コントローラーの追加、ビューなど」などのプロジェクト固有の機能メニューには表示されません。

290
ahsteele

私は@ahsteeleのアプローチを使用しました(ありがとう、2x + 1です!)が、さらに1つのエラーがありました:-

.csproj:エラー:操作を完了できませんでした。無効なクラス文字列

その本当の原因についての引用は見つかりませんが、<ProjectGuid>を変更することで、VS2012RTMにプロジェクトを正常にロードさせることができました。 (これがどのように発生したかはわかりません。大規模なソリューションの一部であり、VS08、VS10、VS11 Beta、およびVS2012RCはすべて、.csprojおよび.slnを徐々にアップグレードしました。

4
Ruben Bartelink

VS2017では、ソリューションは<ProjectTypeGuids></ProjectTypeGuids>のようにするだけです。

紳士men女の間にスペースはありません。さもないと、48時間も無駄になります。

よろしく

0
WickStargazer