153

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

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

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

4

3 に答える 3

292

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

まだ行っていないと仮定すると、ステップ 1 はMVC 1MVC 2またはMVC 3をダウンロードしてインストールすることです(インストールを開始する前に 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 プロジェクトを操作できるようになります。

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

于 2012-11-16T20:39:05.927 に答える
4

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

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

その本当の原因についての引用は見つかりませんが、<ProjectGuid>. (これがどのように起こったのかわかりません-大規模なソリューションの一部であり、VS08、VS10、VS11 Beta、およびVS2012RCはすべて時間.csproj.slnかけてアップグレードしました.

于 2013-02-01T11:58:51.590 に答える