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


152

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プロジェクトを開くにはどうすればよいですか?


知っているのに、なぜこの質問をしたのですか。
ブライアンホワイト

30
@BrianWhite今朝この問題に出くわしたとき、グーグルですばやく検索して何も思いつきませんでした。私はVSプロジェクトファイルのしくみに精通しているので、原因と考えられる解決策について推測しました。そのソリューションが機能したことを確認したら、その知識を共有したいと思いました。ジェフのガイドラインに基づいて、あなた自身の質問をして答えてもかまいません
ahsteele

1
ありがとう、知らなかった。ここで探している人を見かけなかったので、まだ投稿していないことがいくつかあります。
ブライアンホワイト

8
ahsteele、解決策を投稿してくれてありがとう。自分の質問に答え、解決策が見つかると、コミュニティに知識が追加されます。
pomarc 14

回答:


291

Visual Studio 2012またはVisual Studio 2013 でサポートされていないMVCプロジェクトを開くことは、実際には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>

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

  • 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プロジェクトであることを認識しないことです。したがって、「コントローラの追加、ビューなど」などのプロジェクト固有の機能 メニューには表示されません。


11
これはMVC 1でも機能します。プロジェクトファイルを編集した後、再読み込みできませんでした。ビジュアルスタジオを閉じて再度開く必要があり、MVC 1プロジェクトを読み込むことができました。ありがとう!+1
バイトベンダー、

1
優れた!1つの小さな追加で機能します... .cspprojに余分なprojectTypeGuidがあります:{F85E285D-A4E0-4152-9332-AB1D724D3325}; 削除する必要がありました。
ケビンウォン

2
@JookyDFW移行ユーティリティの問題は、それが移行ユーティリティであることです。この特定のプロジェクトの質問に列挙されていない理由により、MVC 2からアップグレードできませんでした。プロジェクトをアップグレードできなかったとしても、引き続き作業する必要がありました。概説として、プロジェクトファイルを変更すると、VS 2012でMVC 2プロジェクトでの仕事に最善の(?のみ)の方法である
ahsteele

3
@RyanShripatまったく私の経験ではありませんでした。古いバージョンのASP.NET MVCをインストールする必要がありますが、VS 2010は上記に影響しません。
ahsteele 2013

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

4

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

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

その真の原因についての引用は見つかりませんが、VS2012RTMにプロジェクトを正常にロードさせることができました<ProjectGuid>。(これが起こったのか全く分から-大型液とのその部分はVS08、VS10、VS11ベータとVS2012RCはすべてアップグレードしていない.csproj.sln時間をかけています。


1

VS2017での解決策は、そのようにすること<ProjectTypeGuids></ProjectTypeGuids>です。

女性と紳士の間にスペースがないと、48時間の時間を無駄にしてしまいます。

よろしく

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.