Какие файлы в профиле публикации будут удалены? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть 3 разных файла настроек, которые используются с приложением .NET Core 2.2appsettings.jsonappsettings.Development.jsonappsettings.Test.json

Я использую профиль публикации, предназначенный для конкретной конфигурации сборки (например, Test), и в своем профиле публикации я добавил это, чтобы попытаться удалить файлы appsettings, которые я НЕ хочу развернуть.Нет смысла развертывать производственные настройки на сервере разработки ...

  <PropertyGroup>
    <ExcludeFilesFromDeployment>appsettings.json</ExcludeFilesFromDeployment>
    <ExcludeFilesFromDeployment>appsettings.Development.json</ExcludeFilesFromDeployment>
  </PropertyGroup>

Однако, когда я публикую, так как в Visual Studio присутствуют все 3 файла.Как я могу указать, что эти 2 других файла будут удалены при публикации?

Я также попытался поместить это в мой файл csproj, но все 3 файла в конечном итоге были опубликованы

  <ItemGroup>
    <None Update="appsettings.json" CopyToPublishDirectory="Never" Condition=" '$(Configuration)' == 'Test' "/>
    <None Update="appsettings.Development.json" CopyToPublishDirectory="Never" Condition=" '$(Configuration)' == 'Test' "/>

    <None Update="appsettings.json" CopyToPublishDirectory="Never" Condition=" '$(Configuration)' == 'Release' "/>
    <None Update="appsettings.Test.json" CopyToPublishDirectory="Never" Condition=" '$(Configuration)' == 'Release' "/>

  </ItemGroup>

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Не уверен, но поместите это в свой файл .csproj, чтобы проверить, помогает ли это. Это работает в vs2017, ядро ​​.net на моей стороне.

<ItemGroup Condition="'$(Configuration)' == 'Test'">
    <Content Remove="appsettings.Development.json" />
    <None Include="appsettings.Development.json" />
    <Content Remove="appsettings.json" />
    <None Include="appsettings.json" />
  </ItemGroup>

  <ItemGroup Condition="'$(Configuration)'=='Release'">
    <Content Remove="appsettings.Test.json" />
    <None Include="appsettings.Test.json" />
    <Content Remove="appsettings.json" />
    <None Include="appsettings.json" />
  </ItemGroup>
0 голосов
/ 06 марта 2019

Не уверен на 100% в этом, но просто подумал, вы пытались настроить их только для копирования, когда это соответствует ожидаемой конфигурации сборки, например,

  <ItemGroup>
    <None Update="appsettings.json" CopyToPublishDirectory="PreserveNewest" Condition=" '$(Configuration)' == 'Production' "/>
    <None Update="appsettings.Development.json" CopyToPublishDirectory="PreserveNewest" Condition=" '$(Configuration)' == 'Development' "/>
    <None Update="appsettings.Test.json" CopyToPublishDirectory="PreserveNewest" Condition=" '$(Configuration)' == 'Test' "/>
  </ItemGroup>

Также проверьте версию ядра .netне зависит от https://github.com/dotnet/sdk/issues/881

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...