Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在运行时加载(通常引用)dll而不知道路径吗?_C#_Dll_Runtime - Fatal编程技术网

C# 我可以在运行时加载(通常引用)dll而不知道路径吗?

C# 我可以在运行时加载(通常引用)dll而不知道路径吗?,c#,dll,runtime,C#,Dll,Runtime,我可以像加载excel一样加载系统.DirectoryServices.AccountManagement(或多或少)吗?我不想在我的项目中引用dll,而是想在运行时加载它 如何加载任何框架dll? Assembly.LoadFile(…) 但我需要找到它的路径。怎么做 Excel示例: dynamic excel = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application")); 我希望我可以使用这样的动态对

我可以像加载excel一样加载
系统.DirectoryServices.AccountManagement
(或多或少)吗?我不想在我的项目中引用dll,而是想在运行时加载它

如何加载任何框架dll?

  • Assembly.LoadFile(…)
  • 但我需要找到它的路径。怎么做

Excel示例:

dynamic excel = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
我希望我可以使用这样的动态对象:

PrincipalContext context1 = new PrincipalContext(ContextType.Domain); // referenced dll
dynamic context2 = ???; // loaded at runtime

引用的DLL/程序集可能构建到exe文件所在的文件夹中。您可以从那里加载它们(使用Sytem.AppDomain.Current.BaseDirectory获取路径)。没有一种方法可以满足您在没有指定路径的情况下加载程序集的要求,或者您可以按照您所描述的方式实现它

为什么不在编译时引用您需要引用的.dll呢。@KirkWoll现在我正在编写一个dll,其中包含动态加载的对dll的引用我希望我的dll可以使用,而不必引用它将静态引用的所有dll。静态加载它们似乎更容易,但我相信你有你的理由。其他DLL是否与应用程序的程序集位于同一位置?您只需要获取其中一个的路径吗?@KirkWoll否。我的执行目录只包含我的dll和exe。