我有一个具有本机 dll 依赖项的混合模式 dll。
我正在使用 Assembly.Load 从 C# exe 加载混合模式 dll。但是,混合模式 dll 的位置不在应用程序 bin 目录中,因此它会失败,因为它只在 bin 和 PATH 环境变量中的文件夹中查找本机 C++ dll。
我认为使用选项 /assemblylinkresource 可以阻止此操作并强制在部署的混合模式 dll 旁边的备用目录中找到本机 dll。事实证明这是不正确的。
有没有办法使用现有的 C++/CLI 混合模式 dll 使用本机 dll 创建多文件程序集?我见过的唯一示例(http://msdn.microsoft.com/en-us/library/xawyf94k(v=vs.100).aspx )是使用 .netmodules 加上本机 dll。
因此,解决方案是:
a)一些如何强制应用程序在您选择的目录中搜索本机依赖项;或者 b) 将本机 dll 打包到一个托管的混合模式程序集中(这甚至可能吗??) - 给定静态链接依赖项不是一种选择。