Удалить нежелательные appsettings.json при публикации программы

Страница обновлена :
Дата создания страницы :

Среды

Визуальная студия
  • Визуальная студия 2019
ASP.NET Ядро
  • 3.1

О опубликованных appssettings.json

ASP.NET программы, созданные Core, теперь загружают настройки "appssettings.json" и "appssettings.production.json" в зависимости от среды. Вам не придется беспокоиться о публикации непосредственно на сервере и не редактировать appsettings.json. В самом деле, если вы посмотрите на список опубликованных файлов, вы увидите, что "appssettings. Вы также можете видеть, что ненужные файлы, такие как "Development.json" также были опубликованы.

Это не проблема, если вы не редактировать appssettings.json после публикации программы непосредственно на сервере, как описано выше. Если вы хотите опубликовать его в виде файла один раз без публикации непосредственно на сервере, или если вы хотите редактировать appssettings.json непосредственно на сервере позже, Наличие нескольких appsettings.json может вызвать ошибку конфигурации и т.д., что очень опасно.

Вы можете вручную удалять нежелательные appssettings.json каждый раз, когда вы публикуете, но это также может быть ошибкой, потому что она проходит через руки людей.

В этом разделе описывается, как удалить нежелательные appssettings.json на момент публикации.

Конфигурация шагов для автоматического удаления нежелательных appssettings.json на момент публикации

Во-первых, опубликовать один раз и создать профиль. Измените название профиля, чтобы было легче понять. (Здесь он установлен с именем профиля Релиз)

При публикации в папке Свойства создается файл под названием "PublishProfiles"lt;ProfileName;.pubxml", поэтому дважды щелкните его, чтобы открыть его.

Поскольку содержимое — это файлы XML, добавьте appsettings.json, которые вы хотите исключить, к местоположению следующих комментариев. Если их больше одного, добавьте "Содержимое" и "Нет" столько, сколько потребуется, и установите "Удалить" и "Включить" в имя целевого файла.

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

Пожалуйста, попробуйте опубликовать, как только вы сохранили. Вы можете проверить, что указанный файл не был опубликован.