首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从c#中的SetdllDirectory中指定的路径加载dlls

从c#中的SetdllDirectory中指定的路径加载dlls
EN

Stack Overflow用户
提问于 2012-07-10 18:04:50
回答 2查看 21.1K关注 0票数 6

我是新接触dotnet的,我有一个使用DllImport加载c dll的dotnet dll。我想把所有的all放在一个与应用程序位置不同的文件夹中。我不想修改环境变量。因此,我使用setdlldirectory应用程序接口并通过Assembly.Loadfrom(..)加载我的c#程序集。通过验证GetDllDirectory(..)的值,我检查了SetdllDirectory是否工作正常。但是它既没有从该文件夹中加载C# dll,也没有从该文件夹中加载c dll。我可以通过在Assembly.Loadfrom中指定路径来加载C#动态链接库。但无法加载c dll。

提前感谢!!

EN

回答 2

Stack Overflow用户

发布于 2012-07-11 01:06:33

我建议在运行时将目录路径添加到path env变量,使用以下代码:

代码语言:javascript
复制
var dllDirectory = @"C:/some/path";
Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + ";" + dllDirectory);

这样,更改只会影响正在运行的进程,并在它退出时被丢弃。

票数 15
EN

Stack Overflow用户

发布于 2012-07-11 00:22:16

看一看LoadFrom的文档,您会发现它说:如果存在assemblyFile的本机映像,则不使用它。程序集不能以非特定于域的身份加载。

我认为您需要将DLL目录添加到EXE的路径中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11410940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档