我有一個.NET dll需要從它的配置文件中讀取它的配置設置。通常,配置文件與DLL放在同一個目錄中。但是,如果DLL被GAC處理,我該如何讀配置文件,因爲我只能將這些DLL放入GAC中,而不是它的配置文件。在GAC中爲程序集配置文件
9
A
回答
13
用戶是否需要配置Dll?如果是這樣,那麼DLL應該使用app.config文件中的配置設置,而不是它自己的配置。 app.config文件應該與應用程序存儲在同一個目錄中。如果沒有,那麼你可以採取幾種不同的方式。您可以對machine.config文件進行更改,以便您的Dll可以在那裏找到它們。我不會這樣做。或者,您可以將配置存儲在設置類中。這些可以通過配置被覆蓋,但是你的默認設置將通過屬性在設置類的生成代碼中設置,所以缺省配置文件不會影響你的Dll,當默認值都是必需的。
12
我同意tvanfosson的Gac'ed DLL將從應用程序的路徑中讀取。 但你也可以通知DLL是這樣的路徑:
System.Configuration.ExeConfigurationFileMap fileMap = new System.Configuration.ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "THE PATH TO THE CONFIG";
System.Configuration.Configuration cfg =
System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, System.Configuration.ConfigurationUserLevel.None);
string thevalue=cfg.AppSettings.Settings[variable].Value;
1
你可以因爲DLL使用AppDomain.CurrentDomain.BaseDirectory的本身不會被執行,你只需要得到可執行文件目錄。
喜歡的東西:
var appDomain = AppDomain.CurrentDomain.BaseDirectory;
string sFileName = appDomain.Replace("\\bin\\Debug", "");
sFileName = sFileName + "Config\\config.xml";
+0
對不起,因爲這是我第一次在這裏回覆..代碼格式不正確:( – 2013-12-02 11:44:07
相關問題
- 1. GAC +配置中的.NET程序集
- 2. GAC - 程序集在GAC中,但「無法加載文件或程序集」
- 3. 爲GAC配置文件中的對象
- 4. ClickOnce需要程序集MyProject在GAC中?
- 5. 在GAC中安裝程序集
- 6. 如何在GAC中引用程序集
- 7. 程序集的配置文件
- 8. 訪問程序集配置文件
- 9. 檢查GAC的程序集
- 10. 如何從GAC中引用程序集?
- 11. 如何引用GAC中的程序集
- 12. 如何使用GAC中的程序集?
- 13. 如何引用GAC中的程序集?
- 14. Windows安裝程序,GAC文件夾中的項目未顯示在GAC中
- 15. Clickonce部署程序集必須安裝在全局程序集緩存(GAC)中
- 16. 配置NHibernate與映射程序集dll在其他目錄比配置文件
- 17. 如何從程序集配置文件中檢索AppSettings?
- 18. .NET for Windows 8配置文件中的程序集列表
- 19. 獨立程序集中的Asp.net配置文件
- 20. 在我的項目中通常在GAC中部署程序集?
- 21. nuget的程序集由GAC的程序集覆蓋
- 22. 使用通配符從GAC註銷程序集
- 23. 從Inno Setup向GAC添加程序集
- 24. 安裝程序集到GAC的問題
- 25. C#:如何從GAC加載程序集?
- 26. 我如何從GAC加載程序集?
- 27. App.Config中的GAC程序集參考(控制檯應用程序)
- 28. 從共享位置或帶有Unity的GAC引用程序集
- 29. MIX應用程序的配置文件爲OTP應用程序
- 30. VS2008更喜歡解決方案文件夾中GAC對程序集的引用
tvanfosson有一個很好的答覆,但我認爲這是一個更適合的答案。 – Keith 2011-06-08 19:14:17