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