Web.config 更新到 .NET Core 2.1.401 后转换失败
Web.config Transforms fail after update to .NET Core 2.1.401
直到今天早上我更新到2.1.401时,一切都很好。
我有一个 CI/CD 进程(使用 Jenkins),它使用 CLI 命令对生成的 web.config 文件(.NET Core 生成)进行 运行 转换。该文件正是生成的文件,没有变化:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyService.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
由于我们的服务器配置,我需要在 system.webServer 节点中添加一个验证元素。
这是转换文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<validation validateIntegratedModeConfiguration="false" xdt:Transform="Insert" />
</system.webServer>
</configuration>
看起来很困难。但是现在,自从更新.NET Core到2.1.401后,遇到了一个错误:
[dotnet-xdt] ERROR '':4:5: DotNet.Xdt.XmlNodeException: No element in
the source document matches '/configuration/system.webServer/validation'
作为参考,我使用 .NET Core CLI 中的 XDT 工具和命令:
dotnet xdt --source .\web.config.full --transform .\web.dev.config --output .\web.config
我不明白为什么会出现该错误,我不是在尝试匹配该元素,而是在尝试插入该元素,所以它当然不存在...不应该存在!!!
我似乎找不到关于 2.1.301 -> 2.1.401 的重大更改的任何内容,我正在转动我的轮子试图修复所有 ~20 个现在因此而中断的作业。
任何见解、想法、指出可能的错误,在这一点上任何真正有用的东西!
web.config.full 中没有节 /configuration/system.webServer
节点。但是有 /configuration/location/system.webServer
个节点存在。
直到今天早上我更新到2.1.401时,一切都很好。 我有一个 CI/CD 进程(使用 Jenkins),它使用 CLI 命令对生成的 web.config 文件(.NET Core 生成)进行 运行 转换。该文件正是生成的文件,没有变化:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyService.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
由于我们的服务器配置,我需要在 system.webServer 节点中添加一个验证元素。
这是转换文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<validation validateIntegratedModeConfiguration="false" xdt:Transform="Insert" />
</system.webServer>
</configuration>
看起来很困难。但是现在,自从更新.NET Core到2.1.401后,遇到了一个错误:
[dotnet-xdt] ERROR '':4:5: DotNet.Xdt.XmlNodeException: No element in the source document matches '/configuration/system.webServer/validation'
作为参考,我使用 .NET Core CLI 中的 XDT 工具和命令:
dotnet xdt --source .\web.config.full --transform .\web.dev.config --output .\web.config
我不明白为什么会出现该错误,我不是在尝试匹配该元素,而是在尝试插入该元素,所以它当然不存在...不应该存在!!!
我似乎找不到关于 2.1.301 -> 2.1.401 的重大更改的任何内容,我正在转动我的轮子试图修复所有 ~20 个现在因此而中断的作业。
任何见解、想法、指出可能的错误,在这一点上任何真正有用的东西!
web.config.full 中没有节 /configuration/system.webServer
节点。但是有 /configuration/location/system.webServer
个节点存在。