有没有办法在 Visual Studio 的设计时加载非托管 dll?
我知道我总是可以将 DLL 放在“System32”文件夹中或将 Dll 路径添加到“PATH”变量中以直接加载它。但我不想那样做。我想从应用程序的 ExecutablePath 加载它。DLL 实际上拥有一个控件。
任何人都可以帮我解决这种情况吗?
谢谢,WritZ
有没有办法在 Visual Studio 的设计时加载非托管 dll?
我知道我总是可以将 DLL 放在“System32”文件夹中或将 Dll 路径添加到“PATH”变量中以直接加载它。但我不想那样做。我想从应用程序的 ExecutablePath 加载它。DLL 实际上拥有一个控件。
任何人都可以帮我解决这种情况吗?
谢谢,WritZ
我想从应用程序的 ExecutablePath 加载它
那行不通,还没有。除了 Windows 从不看那里,当您从源代码管理签入或清理项目时,设计器肯定会失败。
此代码在 Visual Studio 的上下文中运行,因此 Windows DLL 搜索规则基于其安装位置。目前尚不清楚这是失败的 pinvoke 代码,还是您的程序集对 DLL 有隐式依赖。你可以做一些关于 pinvoke 的事情,你可以通过测试 DesignMode 属性来阻止代码运行。处理隐式依赖的唯一方法是帮助 Windows 找到 DLL。搜索路径上的目录。唯一的出路是将代码拆分为仅在设计模式下真正重要的部分,以便 DesignMode 再次变得有用。