Usuwanie niechcianych appsettings.json podczas publikowania programu

Strona zaktualizowana :
Data utworzenia strony :

Środowiska

Visual Studio
  • Visual Studio 2019
Rdzeń ASP.NET
  • 3.1

Informacje o opublikowanych appssettings.json

ASP.NET programy utworzone przez Core ładują teraz ustawienia "appssettings.json" i "appssettings.production.json" w zależności od środowiska. Nie musisz się martwić o publikowanie bezpośrednio na serwerze i nie trzeba edytować appsettings.json. W rzeczywistości, jeśli spojrzeć na listę opublikowanych plików, zobaczysz, że "appssettings. Można również zobaczyć, że niepotrzebne pliki, takie jak "Development.json" zostały również opublikowane.

Nie stanowi to problemu, jeśli nie edytujesz pliku appssettings.json po opublikowaniu programu bezpośrednio na serwerze, jak opisano powyżej. Jeśli chcesz opublikować jako plik raz bez publikowania bezpośrednio na serwerze lub jeśli chcesz później edytować plik appssettings.json bezpośrednio na serwerze, Obecność wielu appsettings.json może wywołać błąd konfiguracji, itp., co jest bardzo niebezpieczne.

Możesz ręcznie usunąć niechciane appssettings.json za każdym razem, gdy publikujesz, ale może to być również błąd, ponieważ przechodzi przez ręce ludzi.

W tej sekcji opisano sposób usuwania niechcianych aplikacjisettings.json w momencie publikacji.

Kroki konfiguracji, aby automatycznie usuwać niechciane aplikacjesettings.json w momencie publikacji

Najpierw opublikuj raz i utwórz profil. Zmień nazwę profilu, aby ułatwić jego zrozumienie. (Tutaj jest ustawiony z nazwą profilu Release)

Po opublikowaniu w folderze Właściwości tworzony jest plik o nazwie "PublishProfiles\<Profile Name>.pubxml", więc kliknij go dwukrotnie, aby go otworzyć.

Ponieważ zawartość są pliki XML, dodaj appsettings.json, które chcesz wykluczyć do lokalizacji następujących komentarzy. Jeśli istnieje więcej niż jeden, dodaj "Zawartość" i "Brak" tyle, ile jest to konieczne i ustaw "Usuń" i "Uwzględnij" do nazwy pliku docelowego.

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

Spróbuj opublikować po zapisaniu. Można sprawdzić, czy określony plik nie został opublikowany.