【发布时间】:2019-06-12 14:54:56
【问题描述】:
我目前在“探测”另一个文件夹中的 dll 时遇到问题。特别是我的应用程序所依赖的 C++ Redistributable 文件,我刚刚将其包含在我的文件夹中以避免运行安装程序。
如果这些文件与 exe 位于同一文件夹中,则应用程序运行成功:
- msvcp110.dll
- msvcp120.dll
- msvcp140.dll
- msvcr110.dll
- msvcr120.dll
- vcruntime140.dll
但是,当我在我的应用程序的 App.config 中尝试将 dll 探测到其他 2 个文件夹时,在执行 .exe 时它们都没有加载。
<probing privatePath="DataResources/cefsharp;DataResources/miscellaneous" />
DLLS 位于DataResources/miscellaneous 文件夹中。但是,来自DataResources/cefsharp 的 DLL(这是我的其他一些 dll)已加载。
有谁知道可能是什么问题? 非常感谢!
【问题讨论】:
-
操作系统需要找到这些DLL,所以探测元素根本不起作用,因为它只影响CLR。操作系统查找与 EXE 相同的目录、Windows 目录、PATH 环境变量中列出的目录以及 SetDllDirectory() 指定的目录。选择你的毒药。
标签: c# c++ dll redistributable probing