Eliminar appsettings.json no deseados al publicar un programa

Actualización de la página :
Fecha de creación de la página :

Ambiente

Visual Studio
  • Visual Studio 2019
ASP.NET Core
  • 3.1

Acerca de appssettings.json publicados

ASP.NET los programas creados por Core ahora cargan la configuración "appssettings.json" y "appssettings.production.json" en función del entorno. No tiene que preocuparse por publicar directamente en el servidor y no tener que editar appsettings.json. De hecho, si nos fijamos en la lista de archivos publicados, verá que "appssettings. También puede ver que también se han publicado archivos innecesarios como "Development.json".

No es un problema si no edita appssettings.json después de publicar el programa directamente en el servidor como se describió anteriormente. Si desea publicar como un archivo una vez sin publicar directamente en el servidor, o si desea editar appssettings.json directamente en el servidor más adelante, La presencia de varios appsettings.json puede desencadenar un error de configuración, etc., que es muy peligroso.

Puede eliminar manualmente el archivo appssettings.json no deseado cada vez que publique, pero esto también puede ser un error porque pasa por las manos de las personas.

En esta sección se describe cómo quitar appssettings.json no deseados en el momento de la publicación.

Pasos de configuración para eliminar automáticamente appssettings.json no deseados en el momento de la publicación

Primero, publica una vez y crea un perfil. Cambie el nombre del perfil para que sea más fácil de entender. (Aquí se establece con el nombre de perfil Liberar)

Cuando se publica, se crea un archivo denominado "PublishProfiles<Profile Name>.pubxml" en la carpeta Properties, por lo que haga doble clic en él para abrirlo.

Dado que el contenido son archivos XML, agregue el archivo appsettings.json que desea excluir a la ubicación de los siguientes comentarios. Si hay más de uno, agregue "Contenido" y "Ninguno" tantos como sea necesario y establezca "Eliminar" e "Incluir" en el nombre del archivo 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, intente publicar una vez que haya guardado. Puede comprobar que el archivo especificado no se ha publicado.