GAC

2008-11-22 14 views
9

içindeki derlemeler için yapılandırma dosyaları Yapılandırma dosyasından yapılandırma ayarlarını okuması gereken bir .NET dll var. Genellikle, config dosyası DLL ile aynı dizine yerleştirilir. Ancak DLL dosyası GAC'ed ise yapılandırma dosyasını nasıl okuyabilirim, çünkü yalnızca GAC'de DLL dosyaları koyabiliyordum, yapılandırma dosyaları değil.GAC

cevap

13

Kullanıcının Dll'yi yapılandırması gerekiyor mu? Öyleyse, DLL, kendi yapılandırması değil, app.config dosyasındaki yapılandırma ayarlarını kullanmalıdır. App.config dosyası, uygulama ile aynı dizinde saklanmalıdır. Eğer değilse, o zaman birkaç farklı yoldan gidebilirsin. Dll dosyanızın onları bulabilmesi için machine.config dosyasında değişiklikler yapabilirsiniz. Bunu ben yapmam. Alternatif olarak, yapılandırmayı bir ayar sınıfında saklayabilirsiniz. Bunlar, yapılandırma yoluyla geçersiz kılınabilir, ancak varsayılanlarınız, öznitelikler aracılığıyla ayarlar sınıfı için oluşturulan kodda ayarlanır ve böylece bir yapılandırma dosyasının olmaması, varsayılanların tümü gerekli olduğunda Dll'nizi etkilemez.

12

Gac'ed dll uygulamasının yolundan okuyacaktır tvanfosson katılıyorum. Ama aynı zamanda bu yolla yolu dll bilgilendirmek olabilir:

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; 
+0

tvanfosson iyi cevap vardı ama bu daha uygun bir cevap olduğunu düşünüyorum. – Keith

1

Sen sadece Executable almak gerekir DLL beri AppDomain.CurrentDomain.BaseDirectory kullanımı tek başına yürütülmez yapabilirsiniz dosya dizini gibi

şey:

var appDomain = AppDomain.CurrentDomain.BaseDirectory; 
string sFileName = appDomain.Replace("\\bin\\Debug", ""); 
sFileName = sFileName + "Config\\config.xml"; 
+0

Üzgünüz, buraya ilk defa ileti gönderiyorum .. kod iyi biçimlendirilmemiş :( –

İlgili konular