2009-01-12 226 views
9

我在VS 2008中有一個解決方案,其中包含兩個類庫項目和一個ASP.NET網站。 ASP.NET站點引用類庫,其中一個庫包含LINQ To SQL項。ASP.NET解決方案類庫項目

我的問題是關於包含數據庫連接字符串的類庫中的app.config。當我構建項目時,此app.config不在構建目錄中,這意味着我無法動態更改已部署項目的連接字符串。

我在做什麼錯在這裏,我怎麼能部署這些設置,所以我可以更改連接字符串?

在此先感謝,

Martin。

回答

18

這也引起了我一些混亂。

您可能認爲類庫使用包含在它自己的項目中的app.config文件,但它沒有。它使用引用它的項目的配置文件。

所以,你需要做的是尋找你的ASP.Net項目的web.config文件裏面的<appSettings/>標籤並將其更改爲<appSettings></appSettings>,並添加包含在庫中的app.config文件中<add ... />標籤是什麼項目。您無需更改代碼中ConfigurationManager類的任何內容即可解決此問題。它知道在哪裏自動尋找。

希望是有道理的。

1

您可以在最終產品中編輯Web.config文件。配置API通常會從應用程序的主配置文件中獲取配置數據,在ASP.NET應用程序中爲Web.config,客戶端應用程序爲Myfile.exe.config。知道項目中的類庫通常不會有像MyClassLib.dll.config這樣的單獨配置文件(除非您手動引用特定文件),這一點很重要。

0

將庫的app.config文件中的connectionString節複製到您的web.config文件中。根據需要將實際連接字符串從開發改爲生產服務器。 LINQ2SQL用於獲取連接字符串的ConfigurationManager類將在web.config文件中查找適當命名的連接字符串,並在存在時使用它。

0

如果要爲開發與生產設置不同的設置,請使用Web部署項目。下載here。從微軟的描述:

Visual Studio 2008的Web部署 項目提供額外的 功能來構建和部署Web在Visual 2008年工作室 站點和Web應用程序這個插件提供了一個 全面的用戶界面來管理打造 配置,合併和使用 預構建和後構建任務與 MSBuild。

1

爲了克服連接字符串的問題,這裏是招

  1. 裏面已經有兩個屬性烏爾類庫申報模塊,一個是調節器和其他是一個getter,使他們上市。
    1. 在你的網站項目中,轉到全局文件,並在會話開始和應用程序開始時調用之前聲明的setter屬性,併爲其分配位於你的web.config,現在連接字符串將在網站的一般範圍內可用,並且只要你的會話證書沒有過期,值就存在。