我在VS 2008中有一个解决方案,它包含两个类库项目和一个ASP.NET网站。 ASP.NET站点引用类库,其中一个库包含LINQ To SQL项。
我的问题是关于类库中的app.config,它包含数据库的连接字符串。当我构建项目时,此app.config不在构建目录中,这意味着我无法动态更改已部署项目的连接字符串。
我在这里做错了什么,如何部署这些设置,以便我可以更改连接字符串?
提前致谢,
马丁。
答案 0 :(得分:18)
这也引起了我一点困惑。
您可能认为类库使用的是包含在其自己的项目中的app.config文件,但它没有。它使用引用它的项目的配置文件。
因此,您需要做的是在ASP.Net项目的web.config文件中查找<appSettings/>
标记,并将其更改为<appSettings></appSettings>
并添加<add ... />
标记包含在库项目的app.config文件中。您不需要在代码中更改ConfigurationManager类的任何内容来解决这个问题。它知道自动查找的位置。
希望这是有道理的。
答案 1 :(得分:1)
您可以编辑最终产品中的Web.config
文件。配置API通常会从应用程序的主配置文件中获取配置数据,如果ASP.NET应用程序为Web.config
,则客户端应用程序为Myfile.exe.config
。重要的是要知道项目中的类库通常不会有像MyClassLib.dll.config
这样的单独配置文件(除非您手动引用特定文件)。
答案 2 :(得分:1)
要克服连接字符串的问题,这是技巧
答案 3 :(得分:0)
将库的app.config文件中的connectionString部分复制到web.config文件中。根据需要将实际连接字符串从开发更改为生产服务器。 LINQ2SQL用于获取连接字符串的ConfigurationManager类将在web.config文件中查找适当命名的连接字符串,如果存在则使用它。
答案 4 :(得分:0)
如果要为开发与生产设置不同的设置,请使用Web部署项目。下载here。来自微软的描述:
Visual Studio 2008 Web部署 项目提供额外的 构建和部署Web的功能 Visual中的站点和Web应用程序 Studio 2008.这个加载项提供了一个 全面的UI来管理构建 配置,合并和使用 预构建和后构建任务 的MSBuild。