【发布时间】:2026-02-13 02:10:01
【问题描述】:
我有 2 个需要配置的 .config 文件。一个是web.config,一个是app.config,这两个文件都来自我们的代码在其中运行的第三方供应商。所以我们需要对其进行调整,以便它能够看到我们的代码。
我的计划是使用 xslt 获取我们的 .config 文件并将其合并到第 3 方文件中。
我已经看到了一些关于如何使用 msbuild 执行此类操作的示例,但由于我们是在现场执行此操作,因此我们将不得不使用安装程序来执行此操作。任何帮助将不胜感激。
示例: 我们开始:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>
自定义部分
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="productName" type="company.productName, company, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9072a6c5128d57c" />
</configSections>
<productName defaultProvider="Provider1">
<providers>
<clear />
<add name="Provider1" type="Company.Product.Authentication.Provider1, Company.Product, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9072a6c5128d57c" hostName="localhost:5555" />
<add name="Provider2" type="Company.Product.Authentication.Provider2, Company.Product, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9072a6c5128d57c" hostName="demo.example.com" />
</providers>
</productName>
</configuration>
结尾是:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="productName" type="company.productName, company, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9072a6c5128d57c" />
</configSections>
<productName defaultProvider="Provider1">
<providers>
<clear />
<add name="Provider1" type="Company.Product.Authentication.Provider1, Company.Product, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9072a6c5128d57c" hostName="localhost:5555" />
<add name="Provider2" type="Company.Product.Authentication.Provider2, Company.Product, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9072a6c5128d57c" hostName="demo.example.com" />
</providers>
</productName>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>
【问题讨论】:
-
转换是否只是将
configuration的一个孩子复制到另一个? -
@Alejandro:是的,检查它是否存在,如果不添加它。如果是,那就别管它了。
-
这不是我写的。你需要弄清楚
check if it is there和leave it alone是什么意思。 -
@Alejandro:感谢您的提示,我真的不太使用 XML,但是从 SQL 的角度来看,它会检查元素是否存在,如果存在则更新它以防它发生变化.或者,如果它确实存在,则会发生插入并将新元素添加到正确的位置。
标签: c# .net xslt config transformation