Visual Studio 2012 の ASP.NET と Web 2013.1 ツールのリリース ノート

作成者: Microsoft

このドキュメントでは、ASP.NET and Web Tools 2013.1 for Visual Studio 2012 について説明します。

内容

Installation Notes (SAP サポート ノート #1984787 – SUSE Linux Enterprise Server 12: インストールに関する注意事項)

ASP.NET and Web Tools 2013.1 for Visual Studio 2012 をインストールします。

ソフトウェア要件

Visual Studio 2012 または Visual Studio Express 2012 for Web が必要です。

ASP.NET and Web Tools 2013.1 for Visual Studio 2012 の新機能

Bootstrap

MVC 5 のコントローラーとビューをスキャフォールディングすると、ビューのマークアップで Bootstrap が使用されます。

テンプレート

ASP.NET MVC 5 テンプレート

新しい MVC 5 テンプレートを追加しました。 最新の MVC 5 NuGet パッケージを参照しており、スキャフォールディングを使用してコントローラーとビューを追加できます。

ASP.NET Web API 2 テンプレート

新しい Web API 2 テンプレートを追加しました。 最新の Web API 2 NuGet パッケージを参照しており、スキャフォールディングを使用してコントローラーとビューを追加できます。

項目テンプレート

MVC 5 ビュー、Web ページ (Razor 3)、Web API 2 コントローラー用の新しい項目テンプレートを追加しました。 新しい項目を追加するときに、関連する NuGet パッケージをプロジェクトにインストールします。

Entity Framework 6

Entity Framework を使用して MVC または Web API コントローラーをスキャフォールディングする場合は、Framework 6 を使用します。 Entity Framework の詳細については、Entity Framework のバージョン履歴を参照してください。

Entity Framework 6 Tools for Visual Studio 2012 をダウンロードしてインストールすることもできます。 「Entity Framework を取得する」を参照してください。

ASP.NET スキャフォールディング

ASP.NET スキャフォールディングは、ASP.NET Web アプリケーション用のコード生成フレームワークです。 これにより、データ モデルと対話する定型コードをプロジェクトに簡単に追加できます。

以前のバージョンの Visual Studio では、スキャフォールディングは ASP.NET MVC プロジェクトに制限されていました。 この更新プログラムでは、Web Forms を含む任意の ASP.NET プロジェクトにスキャフォールディングを使用できるようになりました。 この更新プログラムでは、Web Forms プロジェクトのページの生成はサポートされていませんが、MVC 依存関係をプロジェクトに追加することで、Web Forms でのスキャフォールディングを引き続き使用できます。 Web Forms のページ生成のサポートは、今後の更新プログラムで追加される予定です。

スキャフォールディングを使用する場合は、必要なすべての依存関係がプロジェクトにインストールされていることを確認します。 たとえば、ASP.NET Web Forms プロジェクトから開始し、スキャフォールディングを使用して Web API コントローラーを追加すると、必要な NuGet パッケージと参照がプロジェクトに自動的に追加されます。

WEB Forms プロジェクトに MVC スキャフォールディングを追加するには、新規スキャフォールディング アイテムを追加し、ダイアログ ウィンドウで MVC 5 依存関係を選択します。 MVC をスキャフォールディングする場合は、最小および完全の 2 つのオプションがあります。 [最小] を選択すると、ASP.NET MVC の NuGet パッケージと参照のみがプロジェクトに追加されます。 [完全] オプションを選択すると、[最小] 依存関係と MVC プロジェクトに必要なコンテンツ ファイルが追加されます。

非同期コントローラーのスキャフォールディングのサポートでは、Entity Framework 6 の新しい非同期機能が使用されます。

詳細とチュートリアルについては、ASP.NET スキャフォールディングの概要を参照してください。 これらのチュートリアルでは、Visual Studio 2013 でのスキャフォールディングについて説明しますが、ASP.NET and Web Tools 2013.1 for Visual Studio 2012 にも適用できます。

Razor エディター

この更新プログラムにより、Visual Studio 2012 では Razor 3 のツール/編集がサポートされるようになりました。

NuGet 2.7

NuGet 2.7 には豊富な新機能のセットが含まれており、その詳細は「NuGet 2.7 リリース ノート」で説明されています。

このバージョンの NuGet では、不足しているパッケージの復元をユーザーが NuGet に明示的に許可する必要がなくなります。 NuGet 2.7 をインストールすると、ユーザーは不足しているパッケージを自動的に復元することに暗黙的に同意することになります。 ユーザーは、Visual Studio の NuGet 設定を使用して、パッケージの復元を明示的にオプトアウトできます。 この変更により、パッケージの復元のしくみが簡略化されます。

既知の問題と重大な変更

ASP.NET スキャフォールディング

MVC と Web API のスキャフォールディング - HTTP 404 (Not Found エラー)

スキャフォールディングされた項目をプロジェクトに追加するときにエラーが発生した場合、プロジェクトが不整合な状態のままになる可能性があります。 スキャフォールディングするために加えられた変更の一部はロールバックされますが、インストールされている NuGet パッケージなどの他の変更はロールバックされません。 ルーティング構成の変更がロールバックされると、ユーザーはスキャフォールディングされた項目に移動するときに HTTP 404 エラーを受け取ります。

MVC のこのエラーを修正するには、新しくスキャフォールディングされた項目を追加し、MVC 5 の依存関係 ([最小] または [完全]) を選択します。 このプロセスにより、プロジェクトに必要なすべての変更が追加されます。

Web API のこのエラーを修正するには、次の操作を行います。

  1. 次の WebApiConfig クラスをプロジェクトに追加します。

    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
    
    Public Module WebApiConfig
        Public Sub Register(ByVal config As HttpConfiguration)
            config.MapHttpAttributeRoutes()
            config.Routes.MapHttpRoute(
              name:="DefaultApi",
              routeTemplate:="api/{controller}/{id}",
              defaults:=New With {.id = RouteParameter.Optional}
            )
        End Sub
    End Module
    
  2. 次のように、Global.asax の Application_Start メソッドで WebApiConfig.Register を構成します。

    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);    
        }
    }
    
    Public Class WebApiApplication
         Inherits System.Web.HttpApplication
     
         Sub Application_Start()     
           GlobalConfiguration.Configure(AddressOf WebApiConfig.Register)       
         End Sub
    End Class
    

Visual Studio Express 2012 for Web が、スキャフォールディングされた項目を追加した後に動作を停止する

Entity Framework でスキャフォールディングされた項目を追加した後に Visual Studio Express 2012 for Web が動作を停止した場合 (Entity Framework を使用したアクションを含む Web API 2 コントローラーなど)、System.Web.Extensions に依存するアセンブリのネイティブ イメージの読み込みに Visual Studio Express が失敗した可能性があります。

この問題を解決するには、System.Web.Extensions の MSIL イメージを操作するように Visual Studio Express を構成します。

  1. 管理者モードでコマンド プロンプトを開きます。

  2. %ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE または %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE (64 ビット Windows の場合) に移動します。

  3. テキスト エディターで VWDExpress.exe.config を開きます。

  4. <configuration>/<runtime> 要素の下に次の行を追加します。

    <disableNativeImageLoad>
        <assemblyIdentity name="System.Web.Extensions" />
    </disableNativeImageLoad>
    
  5. Visual Studio Express 2012 for Web を再起動します。

ASP.NET Razor 3

cshtml ファイルを [参照] または F5 で表示すると、サーバー エラーが発生する

Visual Studio 2012 で MVC 5 プロジェクトを作成し (または Visual Studio 2013 で作成された MVC 5 プロジェクトを Visual Studio 2012 で開く)、[参照] または F5 を使用して cshtml ファイルを表示しようとすると、"アプリケーション '/' でのサーバー エラー" というエラーが表示されます。 サーバーは、http://localhost:XXXX/Views/../XXXX.cshtml に移動しようとします

この問題を解決するには、プロジェクトの [開始動作] 設定を [ページを指定する] に変更します。 ページの値を指定する必要はありません。

Screenshot that shows Specific Page selected under Web.

この変更を行った後、F5 キーを選択すると、アプリケーションのルート (http://localhost:XXXX) に移動します。 この動作は、[現在のページ] 設定で開いているページが起動される、Visual Studio 2013 の MVC 5 プロジェクトの動作と同じではありません。

URL の書き換えとチルダ (~)

ASP.NET Razor 3 または ASP.NET MVC 5 にアップグレードした後、URL の書き換えを使用している場合、チルダ (~) 表記が正しく機能しなくなる可能性があります。 URL の書き換えは、<A/>、<SCRIPT/>、<LINK/> などの HTML 要素のチルダ (~) 表記に影響を与え、その結果、チルダはルート ディレクトリにマップされなくなります。

たとえば、asp.net/content の要求を asp.net に書き換える場合、<A href="~/content/"/> の href 属性は、/ ではなく /content/content/ に解決されます。 この変更を抑制するには、各 Web ページまたは Global.asax の Application_BeginRequest で、IIS_WasUrlRewritten コンテキストを false に設定します。

テンプレート

Windows 8.1 または Windows Server 2012 R2 で Visual Studio 2012 を使用して ASP.NET MVC プロジェクトを作成すると、Visual Studio に "ASP.NET 4.5 の Web [url] の構成が失敗しました" というエラー メッセージが表示されます。

configuration error

このエラーは、Visual Studio 2012 が Windows のこれらのリリースにインストールされている場合、ASP.NET 4.5 機能を有効にしないために表示されます。 ASP.NET 4.5 を有効にするには、Windows の機能をオンまたはオフにするで説明されている手順を実行します。

turn on or off Windows features

または、コマンド ラインを使用して ASP.NET 4.5 を有効にすることもできます。

  1. 管理者モードでコマンド プロンプトを開きます。
  2. 次のコマンドを実行して、ASP.NET 4.5 を有効にします。
    dism /Online /Enable-Feature /FeatureName:NetFx4Extended-ASPNET45 /Quiet /NoRestart