【发布时间】:2016-09-05 21:52:31
【问题描述】:
我有一个 ASP.NET 项目,它将类库输出为 dll,然后将其部署到 IIS。每个标准构建的配置文件也与 dll 一起作为 xxx.dll.config 输出,它包含许多有用的环境变量,例如连接字符串(即它符合应用程序设置架构要求)。
在 VS 2012 中,xxx.dll.config 文件的内容来源于项目根目录下的 app.config。
在 VS 2015 中,似乎 xxx.dll.config 的内容来自项目根目录中的 web.config。
重现步骤:
- 使用 VS2015 创建 ASP.NET 应用程序。
- 在此应用程序中添加 app.config 文件。
- 构建此应用程序。
- 打开bin文件夹,找到application.dll.config文件并打开。内容与Web.config相同。
- 在 Visual Studio 2012 中执行步骤 1 到步骤 4 的相同操作,内容与 App.config 相同。
这让我有点头疼,因为我依赖 app.config 保存功能测试的变量(连接字符串、身份验证提供程序),而 web.config 保存已部署代码的变量。
我在 AppDomains 及其配置变量上所做的大部分阅读似乎表明 web.config 不应该考虑到构建输出中,除非明确指示,即使这样,转换 web.config 也不是很容易文件,没关系让它最终成为 xxx.dll.config 文件。
我可以重新设计我的测试装置以直接从测试中设置环境变量,但是对于像 ASP.Identity 这样需要编写相当多的新类来加载我想避免的 RoleManager 和相关提供程序的东西。
如果有人可以建议如何设计 VS 构建以输出一个易于被程序集使用的配置文件,并且当通过 nunit runner 或 Resharper 运行时,nunit 测试会很棒。
【问题讨论】:
-
相反,您可以在源代码管理中添加一个新文件 *.dll.config 并在该文件中复制所需的条目。这应该可以解决问题。
标签: c# asp.net visual-studio nunit