.NET Framework 4.8 UserSecretsConfigBuilder“扩展”(v2.0) 和“令牌”(v3.0) 模式不会替换所有令牌

.NET Framework 4.8 UserSecretsConfigBuilder "Expand" (v2.0) and "Token" (v3.0) modes don't replace all tokens

提问人:codeMonkey 提问时间:9/1/2022 最后编辑:codeMonkey 更新时间:6/13/2023 访问量:469

问:

我正在使用 Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder 并尝试更新我的 web.config 文件中的令牌。文档提到(更新:现在在 v3.0 中)在构建器配置中应该对 web.config 文件的原始 XML 进行操作,并用 pattern 替换它找到的任何标记;然而,根据我的经验,情况并非如此。mode="Expand"mode="Token"${...}

这是我的配置部分:

<configSections>
    <section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />      
</configSections>
<configBuilders>
    <builders>
        <add name="Secrets" userSecretsFile="~\secrets.xml" mode="Expand" optional="true" type="Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.UserSecrets, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </builders>
</configBuilders>

但是,在下面,我有一个内容安全策略的令牌,当我运行应用程序时,该令牌不会被替换:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Content-Security-Policy" value="${ContentSecurityPolicy}" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

同样,这既没有替换 my 部分中的令牌,也没有替换部分中的标记。system.serviceModelsystem.net

文档是否完全错误,它仍然只在 和 上运行?那将是一个巨大的遗憾。appSettingsconnectionStrings

C# Web 配置 System.Configuration

评论


答: 暂无答案