如何覆盖 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
当我执行 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