3

我一直在寻找一段时间,但似乎我的问题与大多数人有所不同。

这是交易,我想让我的程序同时兼容 32 位和 64 位。由于是用 .NET 编写的,所以这不是问题,但是我使用了一个特定于位的 sqlite dll。

尽管事实上,我有两个版本的 dll,而且我也能够为 64 位编译主程序,通过将 64 位版本引用重新添加到项目中,我想让它工作不知何故不同。

必须编译两次对我来说效率不够,相反,我想找到一种使其动态可调的方法:鉴于 Dll 是相同的,它们的内容:函数方法无论如何都是相同的,唯一的区别是他们,是位版本。因此,我想让我的程序的兼容性取决于它旁边的 dll。

由于通常它是作为参考添加到项目中的,Visual Studio 通过突出显示来检测其内容,我想以某种方式将其作为参考添加,但要加载实际的 dll(位于 exe 旁边),而不会失去以我迄今为止所做的方式使用 dll 函数,在编辑器中突出显示。

我已经阅读了有关 Assembly.Load/LoadFrom/LoadFile, + Reflection 的信息,但这并不是我所需要的。

提前致谢,

大卫

4

1 回答 1

8

我知道您已经进行了很多搜索,但是这两个链接确实为您提供了两个很好的选择,您可能已经错过了。

基于 64 位或 32 位操作系统导入外部 dll

试图不需要 x86 和 x64 程序的两个单独的解决方案

在这两个链接中,查看 Hans Passant 的答案。很棒。

希望这可以帮助。

于 2012-11-04T00:06:33.287 回答