ASP.NET Core 2.0 から 2.1 への移行Migrate from ASP.NET Core 2.0 to 2.1

作成者: Rick AndersonBy Rick Anderson

ASP.NET Core 2.1 の新機能の概要については、 ASP.NET Core 2.1 の新 機能を参照してください。See What's new in ASP.NET Core 2.1 for an overview of the new features in ASP.NET Core 2.1.

この記事の内容:This article:

  • ASP.NET Core 2.0 アプリを2.1 に移行する方法の基本について説明します。Covers the basics of migrating an ASP.NET Core 2.0 app to 2.1.
  • ASP.NET Core web アプリケーションテンプレートに加えられた変更の概要について説明します。Provides an overview of the changes to the ASP.NET Core web application templates.

2.1 の変更の概要を簡単に把握するには、次の方法があります。A quick way to get an overview of the changes in 2.1 is to:

  • WebApp1 という名前の ASP.NET Core 2.0 web アプリを作成します。Create an ASP.NET Core 2.0 web app named WebApp1.
  • ソース管理システムで WebApp1 をコミットします。Commit the WebApp1 in a source control system.
  • WebApp1 を削除し、同じ場所に WebApp1 という名前の ASP.NET Core 2.1 web アプリを作成します。Delete WebApp1 and create an ASP.NET Core 2.1 web app named WebApp1 in the same place.
  • 2.1 バージョンの変更を確認します。Review the changes in the 2.1 version.

この記事では、ASP.NET Core 2.1 への移行の概要について説明します。This article provides an overview on migration to ASP.NET Core 2.1. バージョン2.1 に移行するために必要なすべての変更の完全な一覧は含まれていません。It doesn't contain a complete list of all changes needed to migrate to version 2.1. 一部のプロジェクトでは、プロジェクトの作成時に選択したオプションとプロジェクトに対する変更に応じて、より多くの手順が必要になる場合があります。Some projects might require more steps depending on the options selected when the project was created and modifications made to the project.

2.1 バージョンを使用するようにプロジェクト ファイルを更新するUpdate the project file to use 2.1 versions

プロジェクトファイルを更新します。Update the project file:

  • プロジェクトファイルをに更新して、ターゲットフレームワークを .NET Core 2.1 に変更し <TargetFramework>netcoreapp2.1</TargetFramework> ます。Change the target framework to .NET Core 2.1 by updating the project file to <TargetFramework>netcoreapp2.1</TargetFramework>.
  • のパッケージ参照を Microsoft.AspNetCore.All のパッケージ参照に置き換え Microsoft.AspNetCore.App ます。Replace the package reference for Microsoft.AspNetCore.All with a package reference for Microsoft.AspNetCore.App. から削除された依存関係を追加することが必要になる場合があり Microsoft.AspNetCore.All ます。You may need to add dependencies that were removed from Microsoft.AspNetCore.All. 詳細については、次のトピックを参照してください。 ASP.NET Core 2.0 用の Microsoft.AspNetCore.All メタパッケージ および ASP.NET Core 用の Microsoft.AspNetCore.App メタパッケージFor more information, see ASP.NET Core 2.0 用の Microsoft.AspNetCore.All メタパッケージ and ASP.NET Core 用の Microsoft.AspNetCore.App メタパッケージ.
  • へのパッケージ参照の "Version" 属性を削除 Microsoft.AspNetCore.App します。Remove the "Version" attribute on the package reference to Microsoft.AspNetCore.App. を使用するプロジェクトで <Project Sdk="Microsoft.NET.Sdk.Web"> は、バージョンを設定する必要はありません。Projects that use <Project Sdk="Microsoft.NET.Sdk.Web"> don't need to set the version. バージョンはターゲットフレームワークによって暗黙的に示され、ASP.NET Core 2.1 が動作する方法に最適な方法として選択されます。The version is implied by the target framework and selected to best match the way ASP.NET Core 2.1 works. 詳細については、「 共有フレームワークをターゲットとするプロジェクトの規則 」セクションを参照してください。For more information, see the Rules for projects targeting the shared framework section.
  • .NET Framework を対象とするアプリでは、各パッケージ参照を2.1 に更新します。For apps that target the .NET Framework, update each package reference to 2.1.
  • 次のパッケージの** < dotnetclitoolreference > **要素への参照を削除します。Remove references to <DotNetCliToolReference> elements for the following packages. これらのツールは既定で .NET Core CLI にバンドルされているため、個別にインストールする必要はありません。These tools are bundled by default in the .NET Core CLI and don't need to be installed separately.
    • Microsoft. DotNet ( dotnet watch )Microsoft.DotNet.Watcher.Tools (dotnet watch)
    • DotNet () の部分です。 dotnet efMicrosoft.EntityFrameworkCore.Tools.DotNet (dotnet ef)
    • Microsoft. Extensions. のキャッシュ ( dotnet sql-cache )Microsoft.Extensions.Caching.SqlConfig.Tools (dotnet sql-cache)
    • SecretManager ( dotnet user-secrets ) ()Microsoft.Extensions.SecretManager.Tools (dotnet user-secrets)
  • 省略可能: の** < dotnetclitoolreference > **要素を削除でき Microsoft.VisualStudio.Web.CodeGeneration.Tools ます。Optional: you can remove the <DotNetCliToolReference> element for Microsoft.VisualStudio.Web.CodeGeneration.Tools. を実行して、このツールをグローバルにインストールされたバージョンに置き換えることができ dotnet tool install -g dotnet-aspnet-codegenerator ます。You can replace this tool with a globally installed version by running dotnet tool install -g dotnet-aspnet-codegenerator.
  • 2.1 では、 Razor クラスライブラリを使用してファイルを配布することをお勧めし Razor ます。For 2.1, a Razor Class Library is the recommended solution to distribute Razor files. アプリが埋め込みビューを使用する場合、またはファイルのランタイムコンパイルに依存する場合は Razor 、プロジェクトファイルのにを追加し <CopyRefAssembliesToPublishDirectory>true</CopyRefAssembliesToPublishDirectory> <PropertyGroup> ます。If your app uses embedded views, or otherwise relies on runtime compilation of Razor files, add <CopyRefAssembliesToPublishDirectory>true</CopyRefAssembliesToPublishDirectory> to a <PropertyGroup> in your project file.

次のマークアップは、テンプレートで生成された2.0 プロジェクトファイルを示しています。The following markup shows the template-generated 2.0 project file:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <UserSecretsId>aspnet-{Project Name}-{GUID}</UserSecretsId>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.3" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.4" PrivateAssets="All" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.2" />
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>
</Project>

次のマークアップは、テンプレートで生成された2.1 プロジェクトファイルを示しています。The following markup shows the template-generated 2.1 project file:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <UserSecretsId>aspnet-{Project Name}-{GUID}</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" PrivateAssets="All" />
  </ItemGroup>

</Project>

共有フレームワークを対象とするプロジェクトの規則Rules for projects targeting the shared framework

共有フレームワークは、アプリのフォルダー内にはない一連のアセンブリ (.dll ファイル) です。A shared framework is a set of assemblies (.dll files) that are not in the app's folders. 共有フレームワークは、アプリを実行するコンピューター上にインストールする必要があります。The shared framework must be installed on the machine to run the app. 詳しくは、共有フレームワークに関するページをご覧ください。For more information, see The shared framework.

ASP.NET Core 2.1 には、次の共有フレームワークが含まれています。ASP.NET Core 2.1 includes the following shared frameworks:

パッケージ参照によって指定されたバージョンは、 最低限必要な バージョンです。The version specified by the package reference is the minimum required version. たとえば、これらのパッケージの2.1.1 バージョンを参照するプロジェクトは、2.1.0 ランタイムのみがインストールされているコンピューターでは実行されません。For example, a project referencing the 2.1.1 versions of these packages won't run on a machine with only the 2.1.0 runtime installed.

共有フレームワークを対象とするプロジェクトの既知の問題:Known issues for projects targeting a shared framework:

  • .NET Core 2.1.300 SDK (最初に Visual Studio 15.6 に含まれていたもの) は、の暗黙的なバージョンを2.1.0 に設定しました Microsoft.AspNetCore.App 。これにより、Entity Framework Core 2.1.1 と競合します。The .NET Core 2.1.300 SDK (first included in Visual Studio 15.6) set the implicit version of Microsoft.AspNetCore.App to 2.1.0 which caused conflicts with Entity Framework Core 2.1.1. 推奨される解決策は、.NET Core SDK を2.1.301 以降にアップグレードすることです。The recommended solution is to upgrade the .NET Core SDK to 2.1.301 or later. 詳細については、「 AspNetCore との依存関係を共有するパッケージ」を参照してください。For more information, see Packages that share dependencies with Microsoft.AspNetCore.App cannot reference patch versions.

  • またはを使用する必要があるすべてのプロジェクトは Microsoft.AspNetCore.All Microsoft.AspNetCore.App 、またはを使用して別のプロジェクトへのプロジェクト参照を含んでいる場合でも、プロジェクトファイルにパッケージのパッケージ参照を追加する必要があり Microsoft.AspNetCore.All Microsoft.AspNetCore.App ます。All projects that must use Microsoft.AspNetCore.All or Microsoft.AspNetCore.App should add a package reference for the package in the project file, even if they contain a project reference to another project using Microsoft.AspNetCore.All or Microsoft.AspNetCore.App.

    例:Example:

    • MyApp には、へのパッケージ参照があり Microsoft.AspNetCore.App ます。MyApp has a package reference to Microsoft.AspNetCore.App.
    • MyApp.Tests に対するプロジェクト参照があり MyApp.csproj ます。MyApp.Tests has a project reference to MyApp.csproj.

    のパッケージ参照を Microsoft.AspNetCore.App に追加 MyApp.Tests します。Add a package reference for Microsoft.AspNetCore.App to MyApp.Tests. 詳細については、「 統合テストを設定することが困難で、共有フレームワークサービスを中断する可能性があります」を参照してください。For more information, see Integration testing is hard to set up and may break on shared framework servicing.

2.1 Docker イメージの更新Update to the 2.1 Docker images

ASP.NET Core 2.1 では、Docker イメージは dotnet/Dotnet GitHub リポジトリに移行されています。In ASP.NET Core 2.1, the Docker images migrated to the dotnet/dotnet-docker GitHub repository. 次の表は、Docker イメージとタグの変更を示しています。The following table shows the Docker image and tag changes:

2.02.0 2.12.1
microsoft/aspnetcore:2.0microsoft/aspnetcore:2.0 microsoft/dotnet:2.1-aspnetcore-runtimemicrosoft/dotnet:2.1-aspnetcore-runtime
microsoft/aspnetcore-build:2.0microsoft/aspnetcore-build:2.0 microsoft/dotnet:2.1-sdkmicrosoft/dotnet:2.1-sdk

FROM Dockerfileの行を変更して、前の表の2.1 列の新しいイメージの名前とタグを使用します。Change the FROM lines in your Dockerfile to use the new image names and tags in the preceding table's 2.1 column. 詳細については、「 aspnetcore docker リポジトリから dotnet への移行」を参照してください。For more information, see Migrating from aspnetcore docker repos to dotnet.

メインに対する変更Changes to Main

次の図は、テンプレートによって生成される Program.cs ファイルに加えられた変更を示しています。The following images show the changes made to the templated generated Program.cs file.

以前のバージョンの相違点

上の図は、削除された2.0 バージョンを赤で示しています。The preceding image shows the 2.0 version with the deletions in red.

次の図は、2.1 コードを示しています。The following image shows the 2.1 code. 緑色のコードは、2.0 バージョンに置き換えられました。The code in green replaced the 2.0 version:

新しいバージョンの相違点

次のコードは、 Program.csの2.1 バージョンを示しています。The following code shows the 2.1 version of Program.cs:

namespace WebApp1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

新しいは、の Main 呼び出しを BuildWebHost Createwebhostbuilderに置き換えます。The new Main replaces the call to BuildWebHost with CreateWebHostBuilder. Iwebhostbuilder は、新しい 統合テストインフラストラクチャをサポートするために追加されました。IWebHostBuilder was added to support a new integration test infrastructure.

起動時の変更Changes to Startup

次のコードは、2.1 テンプレートで生成されたコードの変更を示しています。The following code shows the changes to 2.1 template generated code. すべての変更は新しく追加されたコードですが、 UseBrowserLink が削除されている点が異なります。All changes are newly added code, except that UseBrowserLink has been removed:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace WebApp1
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();
            // If the app uses Session or TempData based on Session:
            // app.UseSession();

            app.UseMvc();
        }
    }
}

上記のコード変更については、以下で詳しく説明します。The preceding code changes are detailed in:

認証コードの変更Changes to authentication code

ASP.NET Core 2.1 は ASP.NET Core Identity Razor クラスライブラリ(rcl) としてを提供します。ASP.NET Core 2.1 provides ASP.NET Core Identity as a Razor Class Library (RCL).

既定の 2.1 UI では、 Identity 現在、2.0 バージョンよりも重要な新機能は提供されていません。The default 2.1 Identity UI doesn't currently provide significant new features over the 2.0 version. IdentityRCL パッケージでのの置換は省略可能です。Replacing Identity with the RCL package is optional. テンプレートによって生成された Identity コードを RCL バージョンに置き換える利点は次のとおりです。The advantages to replacing the template generated Identity code with the RCL version include:

  • 多くのファイルは、ソースツリーから移動されます。Many files are moved out of your source tree.
  • のバグ修正または新機能は Identity 、 AspNetCore メタパッケージに含まれています。Any bug fixes or new features to Identity are included in the Microsoft.AspNetCore.App metapackage. が更新されると、更新されたが自動的に取得され Identity Microsoft.AspNetCore.App ます。You automatically get the updated Identity when Microsoft.AspNetCore.App is updated.

テンプレートによって生成されたコードに対して、次のような簡単な変更を行ったとし Identity ます。If you've made non-trivial changes to the template generated Identity code:

  • 前述の利点は、RCL バージョンへの変換が正当化 されない 場合があります。The preceding advantages probably do not justify converting to the RCL version.
  • ASP.NET Core 2.0 コードを保持することができ Identity 、完全にサポートされています。You can keep your ASP.NET Core 2.0 Identity code, it's fully supported.

Identity 2.1 は、領域と共にエンドポイントを公開 Identity します。Identity 2.1 exposes endpoints with the Identity area. たとえば、次の表は、 Identity 2.0 から2.1 に変更されるエンドポイントの例を示しています。For example, the follow table shows examples of Identity endpoints that change from 2.0 to 2.1:

2.0 URL2.0 URL 2.1 URL2.1 URL
/Account/Login/Account/Login /Identity/Account/Login/Identity/Account/Login
/アカウント/ログアウト/Account/Logout /Identity/アカウント/ログアウト/Identity/Account/Logout
/アカウント/管理/Account/Manage /Identity/アカウント/管理/Identity/Account/Manage

使用するコードがあり Identity 、2.0 UI を2.1 ライブラリに置き換えるアプリケーションは、 Identity Identity Identity uri の先頭にセグメントがあることを考慮する必要があり /Identity ます。Applications that have code using Identity and replace 2.0 Identity UI with the 2.1 Identity Library need to take into account Identity URLs have /Identity segment prepended to the URIs. 新しいエンドポイントを処理する方法の1つ Identity は、リダイレクトを設定することです。たとえば、から /Account/Login/Identity/Account/Login なります。One way to handle the new Identity endpoints is to set up redirects, for example from /Account/Login to /Identity/Account/Login.

Identityバージョン2.1 に更新します。Update Identity to version 2.1

2.1 に更新するには、次のオプションを使用でき Identity ます。The following options are available to update Identity to 2.1.

  • IdentityUI 2.0 コードを変更せずに使用します。Use the Identity UI 2.0 code with no changes. IdentityUI 2.0 コードの使用は完全にサポートされています。Using Identity UI 2.0 code is fully supported. 生成されたコードに大幅な変更が加えられた場合は、この方法をお勧めし Identity ます。This is a good approach when significant changes have been made to the generated Identity code.
  • 既存の Identity 2.0 コードと Identity スキャフォールディングをプロジェクトに削除します。Delete your existing Identity 2.0 code and Scaffold Identity into your project. プロジェクトは ASP.NET Core Identity Razor クラスライブラリを使用します。Your project will use the ASP.NET Core Identity Razor Class Library. 変更した ui コードのコードと UI を生成することができ Identity ます。You can generate code and UI for any of the Identity UI code that you modified. 新しくスキャフォールディングた UI コードにコードの変更を適用します。Apply your code changes to the newly scaffolded UI code.
  • Identityすべてのファイルを上書きするオプションを使用して、既存の2.0 コードと Identity スキャフォールディングをプロジェクトに削除します。Delete your existing Identity 2.0 code and Scaffold Identity into your project with the option to Override all files.

Identity2.0 UI を Identity 2.1 Razor クラスライブラリに置き換えるReplace Identity 2.0 UI with the Identity 2.1 Razor Class Library

このセクションでは、ASP.NET Core 2.0 テンプレートで生成された Identity コードを ASP.NET Core Identity Razor クラスライブラリに置き換える手順の概要を説明します。This section outlines the steps to replace the ASP.NET Core 2.0 template generated Identity code with the ASP.NET Core Identity Razor Class Library. 次の手順は Razor ページプロジェクト用ですが、MVC プロジェクトのアプローチは似ています。The following steps are for a Razor Pages project, but the approach for an MVC project is similar.

  • 2.1 バージョンを使用するようにプロジェクトファイルが更新されていることを確認するVerify the project file is updated to use 2.1 versions
  • 次のフォルダーとその中のすべてのファイルを削除します。Delete the following folders and all the files in them:
    • コントローラーControllers
    • ページ/アカウント/Pages/Account/
    • 拡張機能Extensions
  • プロジェクトをビルドします。Build the project.
  • スキャフォールディング Identity プロジェクトには次のようになります。Scaffold Identity into your project:
    • * _ レイアウトの cshtml*ファイルを終了するプロジェクトを選択します。Select the projects exiting _Layout.cshtml file.
    • +****データコンテキストクラスの右側にあるアイコンを選択します。Select the + icon on the right side of the Data context class. 既定の名前をそのまま使用します。Accept the default name.
    • 新しいデータコンテキストクラスを作成するには、[ 追加 ] を選択します。Select Add to create a new Data context class. をスキャフォールディングにするには、新しいデータコンテキストを作成する必要があります。Creating a new data context is required for to scaffold. 次のセクションでは、新しいデータコンテキストを削除します。You remove the new data context in the next section.

スキャフォールディング後に更新 IdentityUpdate after scaffolding Identity

  • Identity IdentityDbContext Areas// Identity data/ フォルダー内の scaffolder によって生成された派生クラスを削除します。Delete the Identity scaffolder generated IdentityDbContext derived class in the Areas/Identity/Data/ folder.

  • 区分/ Identity / Identity HostingStartup.csを削除します。Delete Areas/Identity/IdentityHostingStartup.cs.

  • * _ Loginpartial. cshtml*ファイルを更新します。Update the _LoginPartial.cshtml file:

    • Pages/ _ loginpartialpages/Shared/ _ loginpartialに移動します。Move Pages/_LoginPartial.cshtml to Pages/Shared/_LoginPartial.cshtml.
    • asp-area="Identity"フォームとアンカーのリンクにを追加します。Add asp-area="Identity" to the form and anchor links.
    • <form />要素をに更新 <form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Page("/Index", new { area = "" })" method="post" id="logoutForm" class="navbar-right"> します。Update the <form /> element to <form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Page("/Index", new { area = "" })" method="post" id="logoutForm" class="navbar-right">.

    次のコードは、更新された* _ loginpartial*ファイルを示しています。The following code shows the updated _LoginPartial.cshtml file:

    @using Microsoft.AspNetCore.Identity
    
    @inject SignInManager<ApplicationUser> SignInManager
    @inject UserManager<ApplicationUser> UserManager
    
    @if (SignInManager.IsSignedIn(User))
    {
        <form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Page("/Index", new { area = "" })" method="post" id="logoutForm" class="navbar-right">
            <ul class="nav navbar-nav navbar-right">
                <li>
                    <a asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
                </li>
                <li>
                    <button type="submit" class="btn btn-link navbar-btn navbar-link">Log out</button>
                </li>
            </ul>
        </form>
    }
    else
    {
        <ul class="nav navbar-nav navbar-right">
            <li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
            <li><a asp-area="Identity" asp-page="/Account/Login">Log in</a></li>
        </ul>
    }
    

次のコードを使用して ConfigureServices を更新します。Update ConfigureServices with the following code:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    services.AddDefaultIdentity<ApplicationUser>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    services.AddMvc();

    // Register no-op EmailSender used by account confirmation and password reset 
    // during development
    services.AddSingleton<IEmailSender, EmailSender>();
}

Razorページプロジェクトファイルの Razor 変更Changes to Razor Pages projects Razor files

レイアウトファイルThe layout file

  • Pages/ _ layout. Cshtmlpages/Shared/ _ layoutに移動するMove Pages/_Layout.cshtml to Pages/Shared/_Layout.cshtml

  • Areas//[ Identity /]/ _ viewstart. cshtmlで、 Layout = "/Pages/_Layout.cshtml" をに変更 Layout = "/Pages/Shared/_Layout.cshtml" します。In Areas/Identity/Pages/_ViewStart.cshtml, change Layout = "/Pages/_Layout.cshtml" to Layout = "/Pages/Shared/_Layout.cshtml".

  • * _ Layout*ファイルには、次の変更点があります。The _Layout.cshtml file has the following changes:

    • <partial name="_CookieConsentPartial" /> が追加されます。<partial name="_CookieConsentPartial" /> is added. 詳細については、ASP.NET Core での GDPR のサポートに関するページを参照してください。For more information, see GDPR support in ASP.NET Core.
    • jQuery は2.2.0 から3.3.1 に変更されます。jQuery changes from 2.2.0 to 3.3.1.

_ValidationScriptsPartial. cshtml_ValidationScriptsPartial.cshtml

  • ページ/ _ValidationScriptsPartial. cshtml は、 Pages/Shared/ _ validationscriptspartial. cshtmlに移動します。Pages/_ValidationScriptsPartial.cshtml moves to Pages/Shared/_ValidationScriptsPartial.cshtml.
  • jquery . validate/1.14.0 への変更を検証/ 1.17.0 以降します。jquery.validate/1.14.0 changes to jquery.validate/1.17.0.

新しいファイルNew files

次のファイルが追加されます。The following files are added:

  • Privacy.cshtmlPrivacy.cshtml
  • Privacy.cshtml.csPrivacy.cshtml.cs

上記のファイルの詳細については、 ASP.NET Core での GDPR のサポート に関する説明を参照してください。See GDPR support in ASP.NET Core for information on the preceding files.

MVC プロジェクトファイルの変更点 RazorChanges to MVC projects Razor files

レイアウトファイルThe layout file

Layoutファイルには、次の変更点があります。The Layout.cshtml file has the following changes:

  • <partial name="_CookieConsentPartial" /> が追加されます。<partial name="_CookieConsentPartial" /> is added.
  • 3.3.1 の jQuery の変更jQuery changes from 2.2.0 to 3.3.1

_ValidationScriptsPartial. cshtml_ValidationScriptsPartial.cshtml

jquery. validate/ 1.14.0への変更の検証/ 1.17.0 以降jquery.validate/1.14.0 changes to jquery.validate/1.17.0

新しいファイルとアクションメソッドNew files and action methods

次のものが追加されます。The following are added:

  • Views/Home/Privacy. cshtmlViews/Home/Privacy.cshtml
  • Privacyアクションメソッドが Home コントローラーに追加されます。The Privacy action method is added to the Home controller.

上記のファイルの詳細については、 ASP.NET Core での GDPR のサポート に関する説明を参照してください。See GDPR support in ASP.NET Core for information on the preceding files.

ファイルの launchSettings.jsの変更Changes to the launchSettings.json file

ASP.NET Core アプリが既定で HTTPS を使用するようになったため、ファイル のプロパティ/launchSettings.js が変更されました。As ASP.NET Core apps now use HTTPS by default, the Properties/launchSettings.json file has changed.

次の JSON は、ファイル * に対して* 以前の2.0 テンプレートで生成されたlaunchSettings.jsを示しています。The following JSON shows the earlier 2.0 template-generated launchSettings.json file:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:1799/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApp1": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://localhost:1798/"
    }
  }
}

次の JSON は、新しい2.1 テンプレートによって生成されるファイルの launchSettings.js を示しています。The following JSON shows the new 2.1 template-generated launchSettings.json file:

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:39191",
      "sslPort": 44390
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApp1": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

詳細については、ASP.NET Core に HTTPS を適用する を参照してください。For more information, see ASP.NET Core に HTTPS を適用する.

互換性に影響する変更Breaking changes

FileResult Range ヘッダーFileResult Range header

FileResult では、既定では、 受け入れ範囲 ヘッダーが処理されなくなりました。FileResult no longer processes the Accept-Ranges header by default. ヘッダーを有効にするには Accept-RangesEnableRangeProcessing をに設定 true します。To enable the Accept-Ranges header, set EnableRangeProcessing to true.

コントローラーのベースファイルと PhysicalFile 範囲ヘッダーControllerBase.File and PhysicalFile Range header

既定では、次のメソッドでは、 ControllerBase 受け入れ範囲 ヘッダーが処理されなくなりました。The following ControllerBase methods no longer processes the Accept-Ranges header by default:

ヘッダーを有効にするには、 Accept-Ranges EnableRangeProcessing パラメーターをに設定 true します。To enable the Accept-Ranges header, set the EnableRangeProcessing parameter to true.

追加の変更Additional changes