如何覆盖 dotnet publish 的 web.config?

How to override dotnet publish's web.config?

当我执行 dotnet publish -c Release 时,这个 web.config 文件被添加到我的发布文件夹中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\aaa.xxxx.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
    </system.webServer>
  </location>
</configuration>

但是我在服务器上有不同的配置,我想用我自己的配置覆盖它,但是我不知道该怎么做。

我尝试创建 web.config 文件并将其设置为 Copy always

但我收到:

error MSB4018: The "TransformWebConfig" task failed unexpectedly.

error MSB4018: System.UnauthorizedAccessException: Access to the path 'bin\Release\netcoreapp3.1\publish\web.config

即使我 运行 dotnet publish -c Release 作为管理员。

目前,我使用的解决方法是:

rmdir bin /s /q
rmdir obj /s /q
rmdir output /s /q
dotnet publish -c Release -o output
del /f "output\web.config"
xcopy "prod_web.config" "output\web.config*"
pause