我有一個.NET應用程序,我希望除了標準GAC,當前目錄,PATH區域之外,還可以搜索其他依賴DLL的路徑。是否有可能告訴應用程序執行此操作?如何向DLL搜索順序添加路徑
例如
告訴應用程序查看「[Executable Path] \ Dependent DLLs」。
我有一個.NET應用程序,我希望除了標準GAC,當前目錄,PATH區域之外,還可以搜索其他依賴DLL的路徑。是否有可能告訴應用程序執行此操作?如何向DLL搜索順序添加路徑
例如
告訴應用程序查看「[Executable Path] \ Dependent DLLs」。
您可以在.config文件中使用<probing>
元素來添加專用程序集搜索路徑。
另一種在您的配置中設置探測的方法(如果您需要更多靈活性) - 您可以添加自己的處理程序來搜索其他位置並自行加載它們。
在啓動您的應用程序
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve;
添加處理程序用自己的方法取的名字,並搜索其他位置的主要方法 -
private static Assembly CurrentDomainAssemblyResolve(object setnder, ResolveEventArgs args)
{
return LoadEmbeddedAssembly(args.Name);
}
我用這個方法嵌入的DLL作爲資源,所以我可以有一個單獨的可執行文件進行分發,但您也可以從一個目錄加載它們。
你沒有提供足夠的信息...應用程序是否動態加載依賴的DLL - 通過Assembly.LoadFrom? – Yahia
它正在使用XamlXmlReader和ActivityXamlServices.Load加載工作流程。依賴的DLL將基於加載的XAML文件動態變化。 –