.NET App.config。如何替换文件属性?

.NET App.config. How to replace file attribute?

以下是当前情况的简短摘要: 在我的解决方案(控制台应用程序)中,我使用带有如下条目的 app.config 文件:

在我们的生产环境中,此文件由单独的例程提供,我们不想将其放入项目文件存储库中。我们仍然需要一种方便的方法来 运行 开发环境中的解决方案。

我们想到了使用 SlowCheetach 替换 file 属性的想法。它可以很好地替换键值条目,但我们无法使其正确 运行。

有没有办法用 SlowCheetach 或任何其他轻量级工具替换 file 属性?我们真的想避免使用构建脚本来修改 app.config 输出。

下面的解决方案无法正常工作,因为 id 不是有效的架构元素。真正的解决方案在底部。

我想出了一个简单的方法来完成这个。所需要做的就是向 appSettings 添加另一个属性并将其设置为匹配选择器,这样 app.config 中的条目将如下所示:

 <appSettings file="Additional.config" id="appconfig">

和 App.Debug.config 中的那个:

<appSettings id="appconfig" file="New/Path/To/Additional.config" xdt:Transform="Replace" xdt:Locator="Match(id)">

真正的解决方案在这里:

事实证明,你可以简单地使用形式转换:

   <appSettings xdt:Transform="RemoveAttributes(file)">

这将仅删除传递给 RemoveAttributes 的属性,并保持配置的其余部分不变。

可以阅读有关可能的转换属性的更多信息here