C#を使用して、VisualStudio2010。
MSDNに記載されているSystem.Web.Mvcという名前空間があります。その名前空間のすべてのタイプのドキュメントには、それらがにあると記載されていますSystem.Web.Mvc.dll
。
ただし、[参照の追加]の[.NET]タブに移動すると、このアセンブリがリストに表示されません。なんで?
C#を使用して、VisualStudio2010。
MSDNに記載されているSystem.Web.Mvcという名前空間があります。その名前空間のすべてのタイプのドキュメントには、それらがにあると記載されていますSystem.Web.Mvc.dll
。
ただし、[参照の追加]の[.NET]タブに移動すると、このアセンブリがリストに表示されません。なんで?
VS Express 2012 では、「アセンブリ」タブに System.Web.Mvc が見つかりませんでしたが、少し検索した後、デフォルトの「アセンブリ\フレームワーク」ではなく「アセンブリ\拡張機能」タブを調べる必要があることがわかりました。" タブ。
同じ問題があり、System.Web.MVC 参照アセンブリを見つけることができませんでした。
最終的に判明したのは、以下の場所の中にありました。
VS が C: にインストールされているかどうかに注意してください (MVC.dll がデフォルトの場所にない場合があります。これは、C: ドライブにある " Reference Assemblies " フォルダーを意味します)。
そこにない場合は、間違いなくここにあるはずです。
\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll
そのため、ナビゲートまたは参照の追加メニューの参照タブを使用して dll を追加します。
次のように、Nuget Package Manager コンソールからこれを追加することもできます。
Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX
Microsoft.AspNet.Mvc は次のものに依存しています。
...これは大したことではないように思えます。この場合、これは Mvc アプリのサポートを提供するためだけに存在するクラス ライブラリです。したがって、最悪の場合、これは無害な依存関係であると考えています。
ファイル システムまたは GAC のアセンブリを指すよりも、これを確実に好みます。これは、過去に GAC およびファイル システム アセンブリを参照した経験よりも、将来パッケージを更新する方がはるかに苦痛が少なくなるからです。
私は同じ問題を抱えていましたが、ここに面白い理由があります。私の推測では、あなたはリストのSystem.Web.Mvc
下System.Web
にあると予想されます。しかし、リストはアルファベット順ではありません。
最初にリストを並べ替えてから、 の近くを調べますSystem.Web
。
「mvc」を検索してこの問題を解決しました。リストに含まれていないにもかかわらず、System.Web.Mvc が検索結果に表示されました。
「OK、その XML を Web.config に追加することはできますが、質問には答えません」
そこにあるはずです。デフォルトでは、参照の追加リストは順序付けられているように見えますが、そうではありません。名前ヘッダーを押して、もう一度見てください。
次の手順を確認してください。
注: ターゲット フレームワークが .Net Framework 4 Client Profile に設定されている場合、参照リストに MVC 参照は表示されません。.Net Framework 4 と .Net Framework 4 Client Profile の違いについては、こちらを参照してください。
.NET Framework 4 Client Profile は、クライアント アプリケーション用に最適化された .NET Framework 4 のサブセットです。Windows Presentation Foundation (WPF)、Windows フォーム、Windows Communication Foundation (WCF)、ClickOnce 機能など、ほとんどのクライアント アプリケーションに機能を提供します。これにより、.NET Framework 4 クライアント プロファイルを対象とするアプリケーションの展開が高速になり、インストール パッケージが小さくなります。
目的のアセンブリがリストに表示されました。
何が原因で表示されたのか推測することしかできませんが、これまで行ったことのないFile → New → Project → ASP.NET Web Applicationに移動したことが原因ではないかと思います。これにより、何らかの遅延初期化が発生し、リストに Web 開発用の追加のアセンブリが取り込まれた可能性があります。
これは Visual Studio 2012 で変更されました (元の質問には VS2010 と書かれていますが、タイトルは引き続き検索にヒットします)。
VS2012 MVC プロジェクトを作成すると、system.web.mvc がソリューションのピアである packages フォルダーに配置されます。これはデフォルトで Web プロジェクトで参照され、そこに正確なパスを見つけることができます)。
これをセカンダリ プロジェクト (フィルタやその他の属性を持つサポート .dll など) で参照する場合は、そこから参照できます。
MVCアセンブリは、プロジェクト自体ではなく、web.configファイルで参照されていることがわかると思います。
このようなもの:
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
あなたのコメントに返信するには;
私が与えることができる最良の答えはここからです:
add要素は、動的リソースのコンパイル中に使用するアセンブリ参照を追加します。ASP.NETは、各コードモジュールをコンパイルするときに、このアセンブリをリソースに自動的にリンクします。