не уверен, что вы решили эту проблему, но если кто-то еще сталкивался с этой проблемой, у меня возникла эта проблема и, наконец, я искал исходный код для задачи преобразования. в нем содержится некоторая запись в журнал, поэтому я запустил 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