Migrar do ASP.NET Core 2.0 para 2.1Migrate from ASP.NET Core 2.0 to 2.1

Por Rick AndersonBy Rick Anderson

Ver o que há de novo no ASP.NET Core 2.1 para uma visão geral dos novos recursos no 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.

Neste artigo:This article:

  • Aborda os conceitos básicos da migração de um aplicativo ASP.NET Core 2.0 para 2.1.Covers the basics of migrating an ASP.NET Core 2.0 app to 2.1.
  • Fornece uma visão geral das alterações para os modelos de aplicativos web ASP.NET Core.Provides an overview of the changes to the ASP.NET Core web application templates.

É uma maneira rápida de obter uma visão geral das alterações no 2.1:A quick way to get an overview of the changes in 2.1 is to:

  • Crie um aplicativo web do ASP.NET Core 2.0 chamado WebApp1.Create an ASP.NET Core 2.0 web app named WebApp1.
  • Confirme o WebApp1 em um sistema de controle de origem.Commit the WebApp1 in a source control system.
  • Excluir WebApp1 e criar um aplicativo web do ASP.NET Core 2.1 chamado WebApp1 no mesmo local.Delete WebApp1 and create an ASP.NET Core 2.1 web app named WebApp1 in the same place.
  • Revise as alterações na versão 2.1.Review the changes in the 2.1 version.

Este artigo fornece uma visão geral sobre a migração para o ASP.NET Core 2.1.This article provides an overview on migration to ASP.NET Core 2.1. Ele não contém uma lista completa de todas as alterações necessárias para migrar para a versão 2.1.It doesn't contain a complete list of all changes needed to migrate to version 2.1. Alguns projetos podem exigir mais etapas dependendo das opções selecionadas quando o projeto foi criado e as modificações feitas no projeto.Some projects might require more steps depending on the options selected when the project was created and modifications made to the project.

Atualizar o arquivo de projeto para usar versões 2.1Update the project file to use 2.1 versions

Atualize o arquivo de projeto:Update the project file:

  • Alterar a estrutura de destino para o .NET Core 2.1 Atualizando o arquivo de projeto para <TargetFramework>netcoreapp2.1</TargetFramework>.Change the target framework to .NET Core 2.1 by updating the project file to <TargetFramework>netcoreapp2.1</TargetFramework>.
  • Substitua a referência de pacote para Microsoft.AspNetCore.All com uma referência de pacote para Microsoft.AspNetCore.App.Replace the package reference for Microsoft.AspNetCore.All with a package reference for Microsoft.AspNetCore.App. Talvez você precise adicionar dependências que foram removidas da Microsoft.AspNetCore.All.You may need to add dependencies that were removed from Microsoft.AspNetCore.All. Para obter mais informações, consulte Metapacote Microsoft.AspNetCore.All para ASP.NET Core 2.0 e Metapacote Microsoft. AspNetCore. app para ASP.NET Core.For more information, see Metapacote Microsoft.AspNetCore.All para ASP.NET Core 2.0 and Metapacote Microsoft. AspNetCore. app para ASP.NET Core.
  • Remova o atributo "Version" na referência de pacote para Microsoft.AspNetCore.App.Remove the "Version" attribute on the package reference to Microsoft.AspNetCore.App. Projetos que usam <Project Sdk="Microsoft.NET.Sdk.Web"> não precisa definir a versão.Projects that use <Project Sdk="Microsoft.NET.Sdk.Web"> don't need to set the version. A versão é indicada pela estrutura de destino e selecionada para corresponder melhor o funcionamento do 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. Para obter mais informações, consulte o regras para projetos direcionados para a estrutura compartilhada seção.For more information, see the Rules for projects targeting the shared framework section.
  • Para aplicativos destinados ao .NET Framework, atualize cada referência de pacote a 2.1.For apps that target the .NET Framework, update each package reference to 2.1.
  • Remover referências a <DotNetCliToolReference> elementos para os pacotes a seguir.Remove references to <DotNetCliToolReference> elements for the following packages. Essas ferramentas são agrupadas por padrão na CLI do .NET Core e não precisam ser instalado separadamente.These tools are bundled by default in the .NET Core CLI and don't need to be installed separately.
    • Microsoft.DotNet.Watcher.Tools (dotnet watch)Microsoft.DotNet.Watcher.Tools (dotnet watch)
    • Microsoft.EntityFrameworkCore.Tools.DotNet (dotnet ef)Microsoft.EntityFrameworkCore.Tools.DotNet (dotnet ef)
    • Microsoft.Extensions.Caching.SqlConfig.Tools (dotnet sql-cache)Microsoft.Extensions.Caching.SqlConfig.Tools (dotnet sql-cache)
    • Microsoft.Extensions.SecretManager.Tools (dotnet user-secrets)Microsoft.Extensions.SecretManager.Tools (dotnet user-secrets)
  • Opcional: você pode remover o <DotNetCliToolReference> elemento para Microsoft.VisualStudio.Web.CodeGeneration.Tools.Optional: you can remove the <DotNetCliToolReference> element for Microsoft.VisualStudio.Web.CodeGeneration.Tools. Você pode substituir essa ferramenta com uma versão instalada globalmente executando 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.
  • Para o 2.1, uma biblioteca de classes Razor é a solução recomendada para distribuir arquivos do Razor.For 2.1, a Razor Class Library is the recommended solution to distribute Razor files. Se seu aplicativo usa exibições inseridas ou, caso contrário, se baseia na compilação de tempo de execução de arquivos do Razor, adicione <CopyRefAssembliesToPublishDirectory>true</CopyRefAssembliesToPublishDirectory> para um <PropertyGroup> no arquivo de projeto.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.

A marcação a seguir mostra o arquivo de 2.0 projeto gerado pelo modelo: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>

A marcação a seguir mostra o arquivo de 2.1 projeto gerado pelo modelo: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>

Regras para projetos direcionados para a estrutura compartilhadaRules for projects targeting the shared framework

Uma estrutura compartilhada é um conjunto de assemblies (arquivos .dll) que não estão em pastas do aplicativo.A shared framework is a set of assemblies (.dll files) that are not in the app's folders. A estrutura compartilhada deve ser instalada no computador para executar o aplicativo.The shared framework must be installed on the machine to run the app. Saiba mais em A estrutura compartilhada.For more information, see The shared framework.

ASP.NET Core 2.1 inclui as seguintes estruturas compartilhadas:ASP.NET Core 2.1 includes the following shared frameworks:

A versão especificada pela referência de pacote é o mínimo necessário versão.The version specified by the package reference is the minimum required version. Por exemplo, um projeto referenciando o 2.1.1 versões desses pacotes não serão executados em um computador com apenas o 2.1.0 tempo de execução instalado.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.

Problemas conhecidos para projetos direcionados para uma estrutura compartilhada:Known issues for projects targeting a shared framework:

  • O .NET Core 2.1.300 SDK (incluído pela primeira vez no Visual Studio 15.6) defina a versão implícita do Microsoft.AspNetCore.App à 2.1.0 que causaram conflitos com o 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. A solução recomendada é atualizar o SDK do .NET Core para 2.1.301 ou posterior.The recommended solution is to upgrade the .NET Core SDK to 2.1.301 or later. Para obter mais informações, consulte pacotes que compartilham dependências com a Microsoft não podem fazer referência a versões de patch.For more information, see Packages that share dependencies with Microsoft.AspNetCore.App cannot reference patch versions.

  • Todos os projetos que devem usar Microsoft.AspNetCore.All ou Microsoft.AspNetCore.App deve adicionar uma referência de pacote para o pacote no arquivo de projeto, mesmo se eles contêm uma referência de projeto para outro projeto usando Microsoft.AspNetCore.All ou 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.

    Exemplo:Example:

    • MyApp tem uma referência de pacote para Microsoft.AspNetCore.App.MyApp has a package reference to Microsoft.AspNetCore.App.
    • MyApp.Tests tem uma referência de projeto para MyApp.csproj.MyApp.Tests has a project reference to MyApp.csproj.

    Adicionar uma referência de pacote para Microsoft.AspNetCore.App para MyApp.Tests.Add a package reference for Microsoft.AspNetCore.App to MyApp.Tests. Para obter mais informações, consulte testes de integração é difícil de configurar e podem ser divididas em manutenção da estrutura compartilhada.For more information, see Integration testing is hard to set up and may break on shared framework servicing.

Atualizar para as imagens do Docker 2.1Update to the 2.1 Docker images

No ASP.NET Core 2.1, as imagens do Docker são migrados para o repositório do GitHub dotnet/dotnet-docker.In ASP.NET Core 2.1, the Docker images migrated to the dotnet/dotnet-docker GitHub repository. A tabela a seguir mostra o Docker alterações de imagem e marca: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

Alterar o FROM linhas no seu Dockerfile para usar as marcas e os novos nomes de imagem na coluna de 2.1 da tabela anterior.Change the FROM lines in your Dockerfile to use the new image names and tags in the preceding table's 2.1 column. Para obter mais informações, consulte Migrando do aspnetcore repositórios de docker para dotnet.For more information, see Migrating from aspnetcore docker repos to dotnet.

Alterações para MainChanges to Main

As imagens a seguir mostram as alterações feitas para o modelo gerado Program.cs arquivo.The following images show the changes made to the templated generated Program.cs file.

diferenças de versão antigo

A imagem anterior mostra a versão 2.0 com as exclusões em vermelho.The preceding image shows the 2.0 version with the deletions in red.

A imagem a seguir mostra o código 2.1.The following image shows the 2.1 code. O código em verde substituído na versão 2.0:The code in green replaced the 2.0 version:

novo diferenças de versão

O código a seguir mostra a versão 2.1 das Program.cs: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>();
    }
}

O novo Main substitui a chamada para BuildWebHost com CreateWebHostBuilder.The new Main replaces the call to BuildWebHost with CreateWebHostBuilder. IWebHostBuilder foi adicionado para dar suporte a um novo infraestrutura de teste de integração.IWebHostBuilder was added to support a new integration test infrastructure.

Alterações para a inicializaçãoChanges to Startup

O código a seguir mostra as alterações ao código de modelo 2.1 gerado.The following code shows the changes to 2.1 template generated code. Todas as alterações são adicionadas recentemente o código, exceto que UseBrowserLink foi removido: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();
        }
    }
}

As alterações de código anteriores são detalhadas em:The preceding code changes are detailed in:

Alterações no código de autenticaçãoChanges to authentication code

ASP.NET Core 2.1 oferece ASP.NET Core Identity como um biblioteca de classes Razor (RCL).ASP.NET Core 2.1 provides ASP.NET Core Identity as a Razor Class Library (RCL).

O padrão 2.1 interface de identidade do usuário atualmente não fornece novos recursos significativos em relação à versão 2.0.The default 2.1 Identity UI doesn't currently provide significant new features over the 2.0 version. Substituindo a identidade com o pacote RCL é opcional.Replacing Identity with the RCL package is optional. As vantagens para substituir o modelo gerado identidade do código com a versão da RCL incluem:The advantages to replacing the template generated Identity code with the RCL version include:

  • Muitos arquivos são movidos para fora de sua árvore de origem.Many files are moved out of your source tree.
  • Quaisquer correções de bug ou novos recursos de identidade estão incluídos na metapacote Microsoft.Any bug fixes or new features to Identity are included in the Microsoft.AspNetCore.App metapackage. Você obtém a identidade atualizada automaticamente quando Microsoft.AspNetCore.App é atualizado.You automatically get the updated Identity when Microsoft.AspNetCore.App is updated.

Se você tiver feito não triviais alterações ao modelo de código de identidade gerado:If you've made non-trivial changes to the template generated Identity code:

  • As vantagens anteriores provavelmente fazem isso não justificar a conversão para a versão da RCL.The preceding advantages probably do not justify converting to the RCL version.
  • Você pode manter seu código de identidade do ASP.NET Core 2.0, ele é totalmente suportado.You can keep your ASP.NET Core 2.0 Identity code, it's fully supported.

Identidade 2.1 expõe pontos de extremidade com o Identity área.Identity 2.1 exposes endpoints with the Identity area. Por exemplo, a tabela a seguir mostra exemplos de pontos de extremidade de identidade que alterar de 2.0 para 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 URL DE2.1 URL
/ Account/Login/Account/Login Identidade/logon/conta/Identity/Account/Login
/ Conta/Logout/Account/Logout Identidade/logoff/conta/Identity/Account/Logout
/ Conta/gerenciar/Account/Manage / Identidade/conta/gerenciar/Identity/Account/Manage

Identidade de interface do usuário com a necessidade de biblioteca de identidade 2.1 para levar em conta as URLs de identidade de aplicativos que tem o código usando a identidade e substitua 2.0 têm /Identity anexado para os URIs de segmento.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. É uma maneira de lidar com os novos pontos de extremidade de identidade é configurar redirecionamentos, por exemplo da /Account/Login para /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.

Atualizar identidade para a versão 2.1Update Identity to version 2.1

As seguintes opções estão disponíveis para atualizar a identidade para o 2.1.The following options are available to update Identity to 2.1.

  • Use o código de identidade da interface do usuário 2.0 sem alterações.Use the Identity UI 2.0 code with no changes. Usando o código de identidade da interface do usuário 2.0 tem suporte total.Using Identity UI 2.0 code is fully supported. Isso é uma boa abordagem quando alterações significativas foram feitas para o código de identidade gerado.This is a good approach when significant changes have been made to the generated Identity code.
  • Excluir seu código 2.0 de identidade existente e identidade de Scaffold em seu projeto.Delete your existing Identity 2.0 code and Scaffold Identity into your project. Seu projeto usará o ASP.NET Core Identity biblioteca de classes Razor.Your project will use the ASP.NET Core Identity Razor Class Library. Você pode gerar o código e a interface do usuário para qualquer parte do código de identidade da interface do usuário que você modificou.You can generate code and UI for any of the Identity UI code that you modified. Aplica as alterações de código para o código gerado automaticamente recém-criado de interface do usuário.Apply your code changes to the newly scaffolded UI code.
  • Excluir seu código 2.0 de identidade existente e identidade de Scaffold em seu projeto com a opção de substituir todos os arquivos.Delete your existing Identity 2.0 code and Scaffold Identity into your project with the option to Override all files.

Substitua a identidade 2.0 interface do usuário com a biblioteca de classes Razor identidade 2.1Replace Identity 2.0 UI with the Identity 2.1 Razor Class Library

Esta seção descreve as etapas para substituir o código de identidade do ASP.NET Core 2.0 modelo gerado com o ASP.NET Core Identity biblioteca de classes 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. As etapas a seguir são para um projeto de páginas do Razor, mas a abordagem para um projeto MVC é semelhante.The following steps are for a Razor Pages project, but the approach for an MVC project is similar.

  • Verifique se o arquivo de projeto é atualizado para usar 2.1 versõesVerify the project file is updated to use 2.1 versions
  • Exclua as seguintes pastas e todos os arquivos contidos neles:Delete the following folders and all the files in them:
    • ControladoresControllers
    • Páginas/Account /Pages/Account/
    • ExtensõesExtensions
  • Compile o projeto.Build the project.
  • Criar o scaffolding de identidade em seu projeto:Scaffold Identity into your project:
    • Selecione os projetos saindo _layout. cshtml arquivo.Select the projects exiting _Layout.cshtml file.
    • Selecione o + ícone no lado direito dos classe de contexto de dados.Select the + icon on the right side of the Data context class. Aceite o nome padrão.Accept the default name.
    • Selecione adicionar para criar uma nova classe de contexto de dados.Select Add to create a new Data context class. Criar um novo contexto de dados é necessária para criar o scaffolding.Creating a new data context is required for to scaffold. Você pode remover o novo contexto de dados na próxima seção.You remove the new data context in the next section.

Atualizar após o scaffolding de identidadeUpdate after scaffolding Identity

  • Excluir o scaffolder de identidade gerado IdentityDbContext derivado da classe na áreas/identidade/Data/ pasta.Delete the Identity scaffolder generated IdentityDbContext derived class in the Areas/Identity/Data/ folder.

  • Exclua Areas/Identity/IdentityHostingStartup.cs.Delete Areas/Identity/IdentityHostingStartup.cs.

  • Atualizar o _Loginpartial arquivo:Update the _LoginPartial.cshtml file:

    • Mover páginas /_Loginpartial à páginas/Shared/_Loginpartial.Move Pages/_LoginPartial.cshtml to Pages/Shared/_LoginPartial.cshtml.
    • Adicionar asp-area="Identity" os links de âncora e o formulário.Add asp-area="Identity" to the form and anchor links.
    • Atualizar o <form /> elemento para <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">.

    O código a seguir mostra o atualizada _Loginpartial arquivo: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>
    }
    

Atualização ConfigureServices com o código a seguir: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>();
}

Altera a páginas do Razor projetos de arquivos do RazorChanges to Razor Pages projects Razor files

O arquivo de layoutThe layout file

  • Mover páginas /_layout. cshtml à páginas/Shared/_layout. cshtmlMove Pages/_Layout.cshtml to Pages/Shared/_Layout.cshtml

  • Na áreas/identidade/páginas/_viewstart. cshtml, altere Layout = "/Pages/_Layout.cshtml" para Layout = "/Pages/Shared/_Layout.cshtml".In Areas/Identity/Pages/_ViewStart.cshtml, change Layout = "/Pages/_Layout.cshtml" to Layout = "/Pages/Shared/_Layout.cshtml".

  • O _layout. cshtml arquivo tem as seguintes alterações:The _Layout.cshtml file has the following changes:

    • <partial name="_CookieConsentPartial" /> é adicionado.<partial name="_CookieConsentPartial" /> is added. Para obter mais informações, veja Suporte RGPD no ASP.NET Core.For more information, see GDPR support in ASP.NET Core.
    • jQuery muda de 2.2.0 para 3.3.1.jQuery changes from 2.2.0 to 3.3.1.

_ValidationScriptsPartial.cshtml_ValidationScriptsPartial.cshtml

  • Páginas /_ValidationScriptsPartial.cshtml move para páginas/Shared/_ValidationScriptsPartial.cshtml.Pages/_ValidationScriptsPartial.cshtml moves to Pages/Shared/_ValidationScriptsPartial.cshtml.
  • jQuery.Validate/1.14.0 muda para jquery.validate/1.17.0.jquery.validate/1.14.0 changes to jquery.validate/1.17.0.

Novos arquivosNew files

Os seguintes arquivos são adicionados:The following files are added:

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

Ver GDPR suporte no ASP.NET Core para obter informações sobre os arquivos anteriores.See GDPR support in ASP.NET Core for information on the preceding files.

Alterações em arquivos de projetos do MVC RazorChanges to MVC projects Razor files

O arquivo de layoutThe layout file

O layout. cshtml arquivo tem as seguintes alterações:The Layout.cshtml file has the following changes:

  • <partial name="_CookieConsentPartial" /> é adicionado.<partial name="_CookieConsentPartial" /> is added.
  • alterações de jQuery do 2.2.0 para 3.3.1jQuery changes from 2.2.0 to 3.3.1

_ValidationScriptsPartial.cshtml_ValidationScriptsPartial.cshtml

jQuery.Validate/1.14.0 muda para jquery.validate/1.17.0jquery.validate/1.14.0 changes to jquery.validate/1.17.0

Novos arquivos e métodos de açãoNew files and action methods

O exemplo a seguir foram adicionados:The following are added:

  • Views/Home/Privacy.cshtmlViews/Home/Privacy.cshtml
  • O Privacy método de ação é adicionado ao controlador Home.The Privacy action method is added to the Home controller.

Ver GDPR suporte no ASP.NET Core para obter informações sobre os arquivos anteriores.See GDPR support in ASP.NET Core for information on the preceding files.

Alterações no arquivo launchsettings. JSONChanges to the launchSettings.json file

Como os aplicativos ASP.NET Core agora usam HTTPS por padrão, o Properties/launchSettings.json arquivo foi alterado.As ASP.NET Core apps now use HTTPS by default, the Properties/launchSettings.json file has changed.

O JSON a seguir mostra o 2.0 anteriores modelo gerado launchsettings. JSON arquivo: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/"
    }
  }
}

O JSON a seguir mostra o novo 2.1 modelo gerado launchsettings. JSON arquivo: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"
      }
    }
  }
}

Para obter mais informações, consulte Impor HTTPS em ASP.NET Core.For more information, see Impor HTTPS em ASP.NET Core.

Alterações da falhaBreaking changes

Cabeçalho de intervalo FileResultFileResult Range header

FileResult não processa os Accept-Ranges cabeçalho por padrão.FileResult no longer processes the Accept-Ranges header by default. Para habilitar o Accept-Ranges cabeçalho, defina EnableRangeProcessing para true.To enable the Accept-Ranges header, set EnableRangeProcessing to true.

Cabeçalho de intervalo de PhysicalFile e ControllerBase.FileControllerBase.File and PhysicalFile Range header

O seguinte ControllerBase métodos não processa o Accept-Ranges cabeçalho por padrão:The following ControllerBase methods no longer processes the Accept-Ranges header by default:

Para habilitar o Accept-Ranges cabeçalho, defina o EnableRangeProcessing parâmetro true.To enable the Accept-Ranges header, set the EnableRangeProcessing parameter to true.

Alterações adicionaisAdditional changes