2

現在、MVC3 サイトを MVC4 にアップグレードし、すべての .aspx ビューを Razor .cshtml に変換しています。Project は引き続き .NET Framework 4 を対象としています (ここでは、一度に 1 つの大きな変更に取り組もうとしています)。

現在、Visual Studio 2013 の Web アプリ プロジェクトでは、同じエラーが何百回も発生しています。

型または名前空間名 'My_MVC4_Site' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

または、My_MVC4_Site.Models のような名前空間について不平を言います。これは、Web アプリ自体のデフォルトの名前空間です。したがって、すべてのビューの@modelディレクティブにそのエラーがあります。また、モデルまたはコントローラーの一部である他のコードファイルでも、プロジェクトの最上位の名前空間だけでなく、「見つかりませんでした」というエラーが発生します。 cs ファイル、次に同じファイルを下に移動すると、VS は定義されていないと言います。

最も奇妙なことは、プロジェクトがまだビルドされており、Visual Studio からデバッグで実行できることです。つまり、Visual Studio が何かに夢中になっているだけのようです。

しかし、コーディング中に何百もの「エラー」が表示されないように修正したいので、F12 Go To Definition、IntelliSenseなどの多くの基本的なものを無効にします.

  • プロジェクトのプロパティの既定の名前空間が正しいことを確認しました
  • プロジェクトの名前空間を Views フォルダーの Web.config セクションに配置しました
  • もちろん、タイプミスがないか名前空間名を確認しました

どれも違いはありませんでした。

アップデート

ソリューション構成マネージャーと MVC4 Web アプリ プロジェクト自体は、そのプロジェクトで使用できる唯一のオプションである Any CPU プラットフォームにビルドされます。他のいくつかの依存プロジェクトも同様でしたが、ソリューションに含まれるほとんどのプロジェクトには、任意の CPU、x86、および x64 がオプションとして含まれていました。そのため、アクティブ ソリューション プラットフォームが x86 または x64 (これまでに使用した唯一のビルド オプション) に設定された場合、ほとんどのプロジェクトはそれに応じて切り替わりますが、いくつかは常に任意の CPU のままでした。

これが Visual Studio 2010 の MVC3 プロジェクトの場合は問題ありませんでしたが、残りのプロジェクト用に x86 プラットフォームを作成し、ソリューションをクリアし、VS を閉じて再度開き、ソリューションを再構築したところ、機能しました。これらの「型または名前空間が見つかりませんでした」というエラーはすべてなくなりました。VS は再び IDE のように機能し、MVC ビューなどで View in Page Inspector を使用できます。

更新 2

それは数日間機能しましたが、正確な問題が返されました.すべてのビューは@model、名前空間が見つからないというエラーを表示しています.

ソリューション構成は変更されていません。昨日の作業から変更されたプロジェクトまたはソリューションには何も見つかりません。

更新 3

Visual Studio 2012 Update 4を実行して、まだ誰も再イメージ化を行っていない職場の古い開発ボックスに入りました。MVC4 プロジェクト全体を圧縮し、そこで解凍しました。私がそれを変更した唯一の方法は、プロジェクト参照を変更することでした(ソリューション内のさまざまな依存プロジェクトがそこからのパスが異なるため)が、それ以外は変更しませんでした。VS2012 のプロジェクトにはこれらの問題はありません。誤ったエラーはなく、IntelliSense と Page Inspector は完全に機能し、すべてが機能します。

したがって、この MVC4 プロジェクトは、もともと VS2010 の MVC3 プロジェクトであり、MVC4 にアップグレードされ、VS2012 で少し開発されましたが、VS2013 に問題があります。

更新 4

別の作業をしているときに、MVC3 サンプル プロジェクト (興味がある場合はhttps://github.com/tugberkugurlu/MvcRemoteValidationSample ) をダウンロードして解凍し、Visual Studio 2013 で開きました (当時は Update 3 または 4; 私は現在は 4) を使用しています。通常の自動変換プロセス (VS2010 ソリューションであるため) を実行した後、プロジェクトはすべて同じ症状を示しました。したがって、これはVS2013がMVC3のサポートを廃止したことに関係しているという私の理論を確認しました。サンプル ソリューションを MVC3 から 4 に上げたのは、それを行うために見つけたすべてのベスト プラクティスに従いました。改善はありませんでした。

Visual Studio 2013 を閉じ、ソリューションの .suo ファイルを削除し、VS2013 を再度開くと、エラーはなくなりました。

実際の Web プロジェクトでも同じことを行ったところ、エラーもなくなりました。このプロジェクトで数か月ぶりにVSを本物の IDE のように使うことができました!

しかし、これまでに見つけた他のすべての回避策と同様に、これは一時的なものにすぎません。名前空間エラーは常に 1 日か 2 日後に再発するため、.suo を閉じて削除し、再度開く必要があります。

4

0 に答える 0