bas*_*gio 30 asp.net web-config transformation
我在网上找不到我的问题的例子,并想知道是否有人知道解决方案.基本上,如果在我们的web.config上,我们指向另一个文件,如下所示:
<configuration>
<configSections />
<appSettings file="AppSettings.config">
</configuration>
Run Code Online (Sandbox Code Playgroud)
那么我们如何将转换应用于该外部文件?
基本上,我想创建一个AppSettings.config,AppSettings.Debug.config,AppSettings.Release.config并有一个转变从上面压过......这甚至可能吗?
提前致谢,
塞尔吉奥
Mrc*_*ief 32
解决方法很少:
解决方法1
AppSettings.Debug.config,AppSettings.Release.config满值(不与变换属性)web.config使用转换中,使用适当的文件替换:web.debug.config
<appSettings file="AppSettings.debug.config"
xdt:Transform="SetAttributes" xdt:Locator="Match(file)"/>
Run Code Online (Sandbox Code Playgroud)
web.release.config
<appSettings file="AppSettings.release.config"
xdt:Transform="SetAttributes" xdt:Locator="Match(file)"/>
Run Code Online (Sandbox Code Playgroud)
它不太理想,有点挫败了变换的目的,但可能基于一个人的情况而不是使用像SlowCheetah这样的东西.
解决方法2
使用TransformXml构建任务在构建过程中转换文件,如此处和此处所指出的那样
有一个名为Slow Cheetah的Visual Studio插件项目,它采用了转换的想法,允许你将它应用到web.config之外的文件,我还没有使用它,但我认为它会做你想做的事情.Scott Hanselman做了一个关于它的博客.
已接受答案中的解决方法 1 使我走上了正确的轨道,但由于转换不太正确,因此无法按原样工作。正确的变换只是
<appSettings file="AppSettings.debug.config"
xdt:Transform="SetAttributes"/>
Run Code Online (Sandbox Code Playgroud)
我不得不删除 xdt:Locator="Match(file)" 以便文件属性本身会改变。 Web Config Transformations解释说 Match(key) 将定位要更改的元素,但只会更改节点的其他元素,而不是定位器/匹配键本身。每个配置文件只有一个 appSetting,因此我们不需要定位特定实例。
(我没有足够的声誉来评论已接受的答案,所以我将此作为另一个答案发布。)
| 归档时间: |
|
| 查看次数: |
9368 次 |
| 最近记录: |