我有一個具有搜索功能的Web應用程序。搜索算法被編譯爲一個單獨的dll。在搜索算法的C#代碼中,我使用保存在設置文件中的字符串指向搜索索引所在的目錄。一旦搜索代碼被編譯,設置信息被合併在Search.dll.config
中,它與Search.dll一起被放入bin目錄中。現在在我的web應用程序中,我將Search.dll添加到引用中。配置文件不會添加到Web應用程序中。然而,Web應用運行良好,並知道文件在哪裏。因爲在Settings.Designer
裏面,如果配置文件不存在,它使用DefaultSettingValueAttribute
來分配默認值。將dll的配置文件移動到調用dll的應用程序
我該如何將Search.dll.config
添加到我的網絡應用程序中,以便操作員可以根據需要更改服務器上索引文件的位置?
感謝
編輯:
我試圖將配置文件添加到我的部署文件夾。但是,ASP.NET將dll放在C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root ......目錄中,並且配置文件不會被複制到那裏。所以在這一點上,我不知道如何用我的代碼包含配置文件。
感謝您的幫助。
注:
我一直在使用下面的代碼來獲取配置文件的值到應用程序。但是,這取決於dll和配置文件在同一個文件夾中,我不知道該如何完成。
var executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var location = executingAssembly.Location; //C:\MyApp\bin\Debug\Search.dll
var config = ConfigurationManager.OpenExeConfiguration(location);
var sections = config.Sections; //count of this is 21
ConfigurationSectionGroup csg = config.GetSectionGroup("applicationSettings");
ConfigurationSectionCollection csc = csg.Sections;
ConfigurationSection cs = csc.Get("Search.Properties.Settings");
謝謝!如何「將文件標記爲應該複製到輸出文件夾的內容」? – Barka 2012-03-21 18:52:14
謝謝!我可以將配置行移動到web.config,但我的dll如何能夠讀取web.config?看來,asp.net把它們放在不同的隨機命名文件夾中。 – Barka 2012-03-21 20:13:42
編輯我的答案來處理這個問題。 – 2012-03-21 20:44:29