C# 是否使用一组特定的DLL运行程序?
是否可以针对特定目录中的特定二进制文件而不是系统上当前安装的二进制文件运行程序?我也不能修改应用程序的源代码。最简单的方法是使用LoadLibrary调用动态加载DLL。这样,您可以指定要使用的DLL副本的完整路径。最简单的方法是使用LoadLibrary调用动态加载DLL。这样,您可以指定要使用的DLL副本的完整路径。如果它是本机DLL,则只需将DLL与可执行文件放在同一文件夹中即可。首先查找该文件夹。如果它是本机DLL,则只需将DLL与可执行文件放在同一文件夹中即可。首先查找该文件夹。最接近的方法是将更新的DLL放置在与.exe相同的目录中 以下是程序如何查找要加载的DLL(不包括已知DLL)的优先级列表C# 是否使用一组特定的DLL运行程序?,c#,windows,dll,C#,Windows,Dll,是否可以针对特定目录中的特定二进制文件而不是系统上当前安装的二进制文件运行程序?我也不能修改应用程序的源代码。最简单的方法是使用LoadLibrary调用动态加载DLL。这样,您可以指定要使用的DLL副本的完整路径。最简单的方法是使用LoadLibrary调用动态加载DLL。这样,您可以指定要使用的DLL副本的完整路径。如果它是本机DLL,则只需将DLL与可执行文件放在同一文件夹中即可。首先查找该文件夹。如果它是本机DLL,则只需将DLL与可执行文件放在同一文件夹中即可。首先查找该文件夹。最接近
而且,现在我看到这是用“C#”标记的,这确实使我的答案非常蹩脚,因为我认为.manifest的可用性 最接近的方法是将更新的DLL与.exe放在同一目录中 以下是程序如何查找要加载的DLL(不包括已知DLL)的优先级列表
而且,现在我看到这是用“C#”标记的,这确实使我的答案非常蹩脚,因为我认为.manifest的可用性 “当前安装在系统上”和“反对”是什么意思?非常不灵活。我可以问一下原因吗?@elyashiv当前正在修复库中的一个错误,但在此之前我希望有一个解决方案。请澄清“二进制”是指.Net程序集还是本机DLL。可以通过清单和/或app.config重定向DLL加载,但我对这方面不是很有经验,所以我将把它留给其他人来扩展到完整的答案。你所说的“当前安装在系统上”和“反对”是什么意思?非常不灵活。我可以问一下原因吗?@elyashiv当前正在修复库中的一个错误,但在此之前我希望有一个解决方案。请澄清“二进制”是指.Net程序集还是本机DLL。可以通过清单和/或app.config重定向DLL加载,但我对这方面不是很有经验,所以我将把它留给其他人来扩展,以得到完整的答案。如果所讨论的DLL是本机DLL,则为+1。加载的第一个将被其他LoadLibrary调用使用。。。DLL地狱的另一面:)+1,如果所讨论的DLL是本机DLL。加载的第一个将被其他LoadLibrary调用使用。。。地狱的另一面:)这完全是误导。目前的目录在搜索列表中已经有好几年没有那么高了。有这么高的安全漏洞,MS通过安全DLL搜索模式处理。细节在我的答案中的主题中。令人难以置信的是,有人会建议使用working dir搜索DLL。这是一个令人震惊的想法。这完全是误导。目前的目录在搜索列表中已经有好几年没有那么高了。有这么高的安全漏洞,MS通过安全DLL搜索模式处理。细节在我的答案中的主题中。令人难以置信的是,有人会建议使用working dir搜索DLL。这是一个令人震惊的想法。