【问题标题】:Running C++ Redistributable files from a Probing Folder从探测文件夹运行 C++ 可再发行文件
【发布时间】: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


【解决方案1】:

事实证明,当涉及到这些文件时,CefSharp 依赖于它们与 CefSharp 文件本身位于完全相同的文件夹中。就我而言,将这些文件移动到 CefSharp 文件夹就可以了。

在其他情况下可能不是这种情况,但如果您使用 CefSharp 会遇到同样的问题,这就是原因。

【讨论】:

    最近更新 更多