加载特定的32 / 64bit dll参考项目问题

时间:2012-11-03 23:19:05

标签: c# dll 64-bit 32-bit

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

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

尽管事实上,我有两个版本的dll,我也能够编译64位的主程序,通过重新添加64位版本参考项目,我想让它以不同的方式工作。

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

由于通常将它作为参考添加到项目中,Visual Studio通过突出显示检测其内容,我想以某种方式将其添加为参考,但是使实际的dll(位于exe旁边)加载,而不会丢失到目前为止,在编辑器中,使用dll的功能与我的工作方式相同,具有高度的功能。

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

提前谢谢,

大卫

1 个答案:

答案 0 :(得分:8)

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

Import external dll based on 64bit or 32bit OS

Trying to not need two separate solutions for x86 and x64 program

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

希望这有帮助。