我正在尝试做的事情
目前,我们的解决方案中的多个项目中有重复的 WCF 配置设置。我想将 WCF 配置值存储在一个文件中,然后可以根据需要从尽可能多的项目中引用该文件。配置文件必须可转换以允许在不同环境中使用不同的值。
我试过的
我已经做了一些研究,其他人已经尝试过使用 SlowCheetah 和链接文件的类似方法。所以这就是我试图做的。值得注意的是,我们的解决方案包含很多项目,一些 MVC3,一些控制台应用程序和一些类库。
- 我创建了一个 Wcf.Client.config 文件,将其添加到一个通用类库中,并使用 SlowCheetah 添加了转换
- 我想在 MVC3 项目中引用这个文件,所以我创建了一个指向配置文件的链接
- 在 MVC3 项目的 web.config 文件中,我添加了一个包含客户端元素的组,其中 configSource 属性设置为“Wcf.Client.config”
- 我已将链接配置文件的“复制到输出目录”属性设置为“如果较新则复制”
- 我还向链接文件添加了一个转换(我不确定这是否可行,但它成功链接了文件)
问题
我对本地和开发环境进行了转换。不幸的是,当我在开发人员配置中运行 Web 应用程序(或发布它)时,没有拾取转换。查看发布的文件,我可以看到我放置在 web 项目根目录中的链接文件已成功转换,但是,它是从 bin 文件夹中读取的,并且 bin 文件夹中的文件没有被转换。
我到底在问什么?
我真正想知道的是,我做错了什么?有没有人尝试过我上面描述的并使它起作用?或者失败了,有没有人找到另一种方法来共享转换后的配置文件?
一些代码
我创建了一个非常简单的测试项目,希望能比我漫无边际的解释更好地解释我正在努力做的事情。随意看看。如果您构建或发布它,您将看到 MVC3 项目的 bin 文件夹中的 Wcf.Client.config 文件尚未转换。