Как определить пользовательский web.config в .Net Core 2 для публикации IIS? - PullRequest
0 голосов
/ 08 мая 2018

VS создаст (и переопределит) файл web.config как часть публикации в IIS.У меня есть различные элементы, которые нужно включить в файл (например, расширение максимального размера загружаемого файла, перенаправление на HTTPS и т. Д.).В настоящее время мне приходится копировать и вставлять содержимое в файл после каждой публикации.

Есть ли способ определить содержимое файла web.config, который Visual Studio создает при публикации веб-приложения .NET Core 2для IIS?

1 Ответ

0 голосов
/ 10 июля 2018

не уверен, что вы решили эту проблему, но если кто-то еще сталкивался с этой проблемой, у меня возникла эта проблема и, наконец, я искал исходный код для задачи преобразования. в нем содержится некоторая запись в журнал, поэтому я запустил dotnet publish с параметром /v:n, который устанавливает подробность ведения журнала в значение "normal":

dotnet publish src\MyProject -o ..\..\publish /v:n

когда я запустил это, я увидел это в выводе:

_TransformWebConfig:
  No web.config found. Creating 'C:\Development\MyProject\publish\web.config'

, хотя в проекте есть файл web.config. Я изменил свойства web.config «Копировать в выходной каталог» на «Всегда» , и теперь файл web.config в моем проекте объединяется с автоматически сгенерированным содержимым.

мой csproj теперь содержит это:

    <None Include="web.config">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>

и вывод публикации имеет:

_TransformWebConfig:
  Updating web.config at 'C:\Development\MyProject\publish\web.config'

ПРИМЕЧАНИЕ: если вы публикуете в существующий каталог, в котором уже есть web.config, он обновит этот файл. (т. е. старая публикация). если вы не укажете выходной каталог, он будет публиковать что-то вроде /bin/Debug/net471/publish/, в котором могут быть старые файлы.

ПРИМЕЧАНИЕ2: вам все еще нужен атрибут Sdk="Microsoft.NET.Sdk.Web" на узле Project в вашем файле csproj, иначе он даже не будет беспокоиться о поиске Web.configs.

для справки, вот исходный код задачи: https://github.com/aspnet/websdk/blob/master/src/Publish/Microsoft.NET.Sdk.Publish.Tasks/Tasks/TransformWebConfig.cs

...