Fjerne uønskede appsettings.json, når du udgiver et program

Side opdateret :
Dato for oprettelse af side :

Miljø

Visuel Studio
  • Visual Studio 2019
ASP.NET Kerne
  • 3.1

Om udgivne appssettings.json

ASP.NET Core-oprettede programmer indlæser nu indstillingerne "appssettings.json" og "appssettings.production.json" afhængigt af miljøet. Du behøver ikke at bekymre dig om at udgive direkte til serveren og ikke at skulle redigere appsettings.json. Faktisk, hvis man ser på listen over udgivne filer, vil du se, at "appssettings. Du kan også se, at unødvendige filer som "Development.json" også er blevet offentliggjort.

Det er ikke et problem, hvis du ikke redigerer appssettings.json, når du har udgivet programmet direkte på serveren som beskrevet ovenfor. Hvis du vil udgive som en fil én gang uden at udgive direkte på serveren, eller hvis du vil redigere appssettings.json direkte på serveren senere, Tilstedeværelsen af flere appsettings.json kan udløse en konfigurationsfejl osv., hvilket er meget farligt.

Du kan manuelt slette de uønskede appssettings.json hver gang du udgiver, men det kan også være en fejl, fordi det går gennem folks hænder.

I dette afsnit beskrives, hvordan du fjerner uønskede appssettings.json på udgivelsestidspunktet.

Konfigurationstrin til automatisk sletning af uønskede appssettings.json på udgivelsestidspunktet

Først skal du udgive én gang og oprette en profil. Rediger navnet på profilen for at gøre det nemmere at forstå. (Her er det sat med profilnavnet Release)

Når den udgives, oprettes der en fil med navnet "PublishProfiles\<Profile Name>.pubxml" i mappen Egenskaber, så dobbeltklik på den for at åbne den.

Da indholdet er XML-filer, skal du tilføje den appsettings.json, du vil udelade, til placeringen af følgende kommentarer. Hvis der er mere end én, skal du tilføje "Indhold" og "Ingen" så mange som nødvendigt og indstille "Fjern" og "Medtag" til destinationsfilnavnet.

<?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>

Prøv at udgive, når du har gemt. Du kan kontrollere, at den angivne fil ikke er udgivet.