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:

  • プロジェクトファイルを <TargetFramework>netcoreapp2.1</TargetFramework>に更新して、ターゲットフレームワークを .NET Core 2.1 に変更します。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 メタパッケージ.
  • Microsoft.AspNetCore.Appするパッケージ参照の "Version" 属性を削除します。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 ef) のようになります。Microsoft.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 ファイルのランタイムコンパイルに依存する場合は、プロジェクトファイル内の <PropertyGroup><CopyRefAssembliesToPublishDirectory>true</CopyRefAssembliesToPublishDirectory> を追加します。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 に含まれていたもの) では、Entity Framework Core 2.1.1 と競合する原因となった、暗黙的なバージョンの Microsoft.AspNetCore.App が2.1.0 に設定されています。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: 2.0microsoft/aspnetcore-build:2.0 microsoft/dotnet:2.1-sdkmicrosoft/dotnet:2.1-sdk

DockerfileFROM 行を変更して、前の表の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 idRazor クラスライブラリ(rcl) として提供しています。ASP.NET Core 2.1 provides ASP.NET Core Identity as a Razor Class Library (RCL).

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

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

テンプレートで生成された Id コードを簡単に変更した場合は、次のようにします。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 の Id コードを保持することができ、完全にサポートされています。You can keep your ASP.NET Core 2.0 Identity code, it's fully supported.

Id 2.1 は、Identity 領域でエンドポイントを公開します。Identity 2.1 exposes endpoints with the Identity area. たとえば、次の表は、2.0 から2.1 に変更される Id エンドポイントの例を示しています。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/Account/Logout /Identity/Account/Logout/Identity/Account/Logout
/アカウント/管理/Account/Manage /Identity/Account/Manage/Identity/Account/Manage

Id を使用するコードがあり、2.0 Id UI を 2.1 Id ライブラリに置き換えるアプリケーションは、Id Url を考慮する必要があります。これは、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. 新しい Id エンドポイントを処理する方法の1つは、リダイレクトを設定することです。たとえば、/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.

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

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

  • Id UI 2.0 コードを変更せずに使用します。Use the Identity UI 2.0 code with no changes. Id UI 2.0 コードの使用は完全にサポートされています。Using Identity UI 2.0 code is fully supported. これは、生成された Id コードに大幅な変更が加えられた場合に適した方法です。This is a good approach when significant changes have been made to the generated Identity code.
  • 既存の Id 2.0 code とスキャフォールディング idをプロジェクトに削除します。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. 変更した Id UI コードのコードと UI を生成することができます。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.
  • すべてのファイルを上書きするオプションを使用して、既存の id 2.0 Code とスキャフォールディング idをプロジェクトに削除します。Delete your existing Identity 2.0 code and Scaffold Identity into your project with the option to Override all files.

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

このセクションでは、ASP.NET Core 2.0 テンプレートで生成された Id コードを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 Pages プロジェクト用ですが、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.
  • Idをプロジェクトにスキャフォールディング:Scaffold Identity into your project:
    • _Layoutファイルを終了するプロジェクトを選択します。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.

スキャフォールディング Id 後の更新Update after scaffolding Identity

  • 区分/id/データ/ フォルダーの派生クラス IdentityDbContext 生成された id scaffolder を削除します。Delete the Identity scaffolder generated IdentityDbContext derived class in the Areas/Identity/Data/ folder.

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

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

    • ページ/_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 Pages プロジェクトへの変更Changes to Razor Pages projects Razor files

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

  • Pages/_layoutpages/Shared/_layout. cshtmlに移動します。Move Pages/_Layout.cshtml to Pages/Shared/_Layout.cshtml

  • 区分/id/ページ/_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

  • Pages/_ValidationScriptsPartial. cshtmlpages/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 プロジェクトの Razor ファイルに対する変更Changes 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. json ファイルの変更Changes to the launchSettings.json file

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

次の JSON は、以前の2.0 テンプレートによって生成されたLaunchsettings. jsonファイルを示しています。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. jsonファイルを示しています。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-Ranges ヘッダーを有効にするには、EnableRangeProcessingtrueに設定します。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