1

有没有办法在 Visual Studio 的设计时加载非托管 dll?

我知道我总是可以将 DLL 放在“System32”文件夹中或将 Dll 路径添加到“PATH”变量中以直接加载它。但我不想那样做。我想从应用程序的 ExecutablePath 加载它。DLL 实际上拥有一个控件。

任何人都可以帮我解决这种情况吗?


谢谢,WritZ

4

1 回答 1

0

我想从应用程序的 ExecutablePath 加载它

那行不通,还没有。除了 Windows 从不看那里,当您从源代码管理签入或清理项目时,设计器肯定会失败。

此代码在 Visual Studio 的上下文中运行,因此 Windows DLL 搜索规则基于其安装位置。目前尚不清楚这是失败的 pinvoke 代码,还是您的程序集对 DLL 有隐式依赖。你可以做一些关于 pinvoke 的事情,你可以通过测试 DesignMode 属性来阻止代码运行。处理隐式依赖的唯一方法是帮助 Windows 找到 DLL。搜索路径上的目录。唯一的出路是将代码拆分为仅在设计模式下真正重要的部分,以便 DesignMode 再次变得有用。

于 2012-08-15T19:02:17.213 回答