2011-07-26 20 views
6

Standart GAC, geçerli dizin, PATH alanları dışında bağımlı DLL'ler için başka yollar aramak istediğim bir .NET uygulamasına sahibim. Uygulamanın bunu yapması mümkün mü?DLL arama sırasına nasıl bir yol ekleyebilirim

E.g.

Uygulamaya "[Executable Path] \ Bağımlı DLL'ler" içine bakmasını söyleyin.

+1

Yeterli bilgi vermezsiniz ... uygulama, bağımlı DLL'leri dinamik olarak yükler - Assembly.LoadFrom üzerinden mi? – Yahia

+0

İş akışlarını bir XamlXmlReader ve ActivityXamlServices.Load kullanarak yükleniyor. Bağımlı olan DLL'ler, yüklenen XAML dosyasına göre dinamik olur. –

cevap

6

.config dosyanızdaki <probing> öğesini kullanarak özel derleme arama yolu ekleyebilirsiniz.

2

Probunuzu yapılandırmaya alternatif bir yaklaşım (daha fazla esnekliğe ihtiyacınız varsa) - kendi işleyicinizi başka konumlarda aramak ve bunları kendiniz yüklemek için ekleyebilirsiniz.

private static Assembly CurrentDomainAssemblyResolve(object setnder, ResolveEventArgs args) 
{ 
    return LoadEmbeddedAssembly(args.Name); 
} 

ben dll gömmek için bu yöntemi kullanabilirsiniz -

AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve; 

diğer konumları adını alıp aramak için kendi yöntemiyle bir işleyici ekleyin uygulamanızı başlatır ana yöntemde

kaynakları dağıtmak için tek bir yürütülebilir dosyaya sahip olabilirim, ancak bunları bir dizinden de yükleyebilirsiniz.

İlgili konular