139

C#を使用して、VisualStudio2010。

MSDNに記載されているSystem.Web.Mvcという名前空間があります。その名前空間のすべてのタイプのドキュメントには、それらがにあると記載されていますSystem.Web.Mvc.dll

ただし、[参照の追加]の[.NET]タブに移動すると、このアセンブリがリストに表示されません。なんで?

4

14 に答える 14

107

VS Express 2012 では、「アセンブリ」タブに System.Web.Mvc が見つかりませんでしたが、少し検索した後、デフォルトの「アセンブリ\フレームワーク」ではなく「アセンブリ\拡張機能」タブを調べる必要があることがわかりました。" タブ。

于 2013-06-07T12:17:53.037 に答える
62

同じ問題があり、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 を追加します。

于 2012-04-15T17:00:27.357 に答える
28

次のように、Nuget Package Manager コンソールからこれを追加することもできます。

Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX

Microsoft.AspNet.Mvc は次のものに依存しています。

  • 「Microsoft.AspNet.WebPages (≥ 2.0.20710.0 && < 2.1)」
  • 「Microsoft.Web.Infrastructure (≥ 1.0.0.0)」
  • 「Microsoft.AspNet.Razor (≥ 2.0.20710.0 && < 2.1)」

...これは大したことではないように思えます。この場合、これは Mvc アプリのサポートを提供するためだけに存在するクラス ライブラリです。したがって、最悪の場合、これは無害な依存関係であると考えています。

ファイル システムまたは GAC のアセンブリを指すよりも、これを確実に好みます。これは、過去に GAC およびファイル システム アセンブリを参照した経験よりも、将来パッケージを更新する方がはるかに苦痛が少なくなるからです。

于 2013-05-18T08:27:40.470 に答える
11

私は同じ問題を抱えていましたが、ここに面白い理由があります。私の推測では、あなたはリストのSystem.Web.MvcSystem.Webにあると予想されます。しかし、リストはアルファベット順ではありません。

最初にリストを並べ替えてから、 の近くを調べますSystem.Web

于 2012-09-11T14:38:17.147 に答える
6

「mvc」を検索してこの問題を解決しました。リストに含まれていないにもかかわらず、System.Web.Mvc が検索結果に表示されました。

于 2014-07-19T09:09:50.203 に答える
5

「OK、その XML を Web.config に追加することはできますが、質問には答えません」

そこにあるはずです。デフォルトでは、参照の追加リストは順序付けられているように見えますが、そうではありません。名前ヘッダーを押して、もう一度見てください。

于 2010-09-06T10:17:58.567 に答える
5

次の手順を確認してください。

  1. MVC が正しくインストールされていることを確認します。
  2. プロジェクトのプロパティを確認し、プロジェクトのターゲット フレームワークを確認します。ターゲット フレームワークが .Net Framework 4 に設定されていない場合は、設定します。

: ターゲット フレームワークが .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 クライアント プロファイルを対象とするアプリケーションの展開が高速になり、インストール パッケージが小さくなります。

于 2012-03-12T08:53:04.553 に答える
3

目的のアセンブリがリストに表示されました。

何が原因で表示されたのか推測することしかできませんが、これまで行ったことのないFileNewProjectASP.NET Web Applicationに移動したことが原因ではないかと思います。これにより、何らかの遅延初期化が発生し、リストに Web 開発用の追加のアセンブリが取り込まれた可能性があります。

于 2010-09-06T13:29:50.617 に答える
2

これは Visual Studio 2012 で変更されました (元の質問には VS2010 と書かれていますが、タイトルは引き続き検索にヒットします)。

VS2012 MVC プロジェクトを作成すると、system.web.mvc がソリューションのピアである packages フォルダーに配置されます。これはデフォルトで Web プロジェクトで参照され、そこに正確なパスを見つけることができます)。

これをセカンダリ プロジェクト (フィルタやその他の属性を持つサポート .dll など) で参照する場合は、そこから参照できます。

于 2012-10-04T19:49:41.937 に答える
0

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は、各コードモジュールをコンパイルするときに、このアセンブリをリソースに自動的にリンクします。

于 2010-09-06T00:16:52.697 に答える