Remova appsettings indesejados.json ao publicar um programa

Página atualizada :
Data de criação de página :

Ambiente

Estúdio Visual
  • Visual Studio 2019
Núcleo ASP.NET
  • 3.1

Sobre appssettings publicados.json

ASP.NET programas criados pelo Core agora carregam as configurações "appssettings.json" e "appssettings.production.json" dependendo do ambiente. Você não precisa se preocupar em publicar diretamente no servidor e não ter que editar appsettings.json. Na verdade, se você olhar para a lista de arquivos publicados, você verá que "appssettings. Você também pode ver que arquivos desnecessários como "Development.json" também foram publicados.

Não é um problema se você não editar appssettings.json depois de publicar o programa diretamente no servidor como descrito acima. Se você quiser publicar como um arquivo uma vez sem publicar diretamente no servidor, ou se você quiser editar appssettings.json diretamente no servidor mais tarde, A presença de vários appsettings.json pode desencadear um erro de configuração, etc., o que é muito perigoso.

Você pode excluir manualmente os appssettings indesejados.json cada vez que publicar, mas isso também pode ser um erro porque ele passa pelas mãos das pessoas.

Esta seção descreve como remover appssettings indesejados.json no momento da publicação.

Etapas de configuração para excluir automaticamente appssettings indesejados.json no momento da publicação

Primeiro, publique uma vez e crie um perfil. Mude o nome do perfil para facilitar a compreensão. (Aqui está definido com o nome de perfil Liberação)

Quando publicado, um arquivo chamado "PublishProfiles\<Profile Name>.pubxml" é criado na pasta Propriedades, então clique duas vezes nele para abri-lo.

Uma vez que o conteúdo são arquivos XML, adicione os appsettings.json que você deseja excluir para a localização dos comentários a seguir. Se houver mais de um, adicione "Conteúdo" e "Nenhum" quantos for necessário e defina "Remover" e "Incluir" no nome do arquivo de destino.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <ProjectGuid>d988b0db-dad2-4308-baa1-6d1c89a074db</ProjectGuid>
    <SelfContained>false</SelfContained>
    <publishUrl>bin\Release\netcoreapp3.1\publish\</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>
  <!-- ここから追加 -->
  <ItemGroup>
    <Content Remove="appsettings.Development.json" />
    <None Include="appsettings.Development.json" />
  </ItemGroup>
  <!-- ここまで追加 -->
</Project>

Por favor, tente publicar uma vez que você tenha salvo. Você pode verificar se o arquivo especificado não foi publicado.