我一直在寻找,但似乎我的问题与大多数人有所不同。
这是交易,我想使我的程序兼容32和64位。由于用.NET编写它不是问题,但我使用的是一个特定于位的sqlite dll。
尽管事实上,我有两个版本的dll,我也能够编译64位的主程序,通过重新添加64位版本参考项目,我想让它以不同的方式工作。
编译2次对我来说效率不够,相反,我想找到一种方法使其动态可调:鉴于Dlls是相同的,它们的内容:函数方法无论如何,都是相同的,只有它们之间的区别,就是位版本。因此,我想使我的程序的兼容性取决于它旁边的dll。
由于通常将它作为参考添加到项目中,Visual Studio通过突出显示检测其内容,我想以某种方式将其添加为参考,但是使实际的dll(位于exe旁边)加载,而不会丢失到目前为止,在编辑器中,使用dll的功能与我的工作方式相同,具有高度的功能。
我已经阅读了Assembly.Load / LoadFrom / LoadFile,+ Reflection,但这并不是我需要的。
提前谢谢,
大卫
答案 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的答案。真棒。
希望这有帮助。