在Windows 32或64位下使用VS2010.我们的C#app调用与非托管DLL接口的第三方DLL(托管).第三方DLL API在32位或64位中显示相同,但在其下方链接到32位或64位非托管DLL.
我们希望我们的C#应用程序在32位或64位操作系统上运行,理想情况下它会自动检测操作系统并加载相应的第32方DLL - 通过一个简单的工厂类来测试环境.因此,最新的解决方案是运行时文件夹,其中包含:OurApp.exe 3rdParty32.DLL 3rdPartyUnmanaged32.DLL 3rdParty64.DLL 3rdPartyUnmanaged64.DLL
但是,托管的3rdParty 32和64 dll的接口是相同的,因此两者都不能在同一个VS2010项目中引用:添加第二个时,会显示警告三角形,但不会引用它.
我唯一的答案是创建两个额外的库DLL项目来引用3rdParty 32和64 Dll?所以我最终会得到这个项目安排:项目1:构建OurApp.exe,为project2或project3动态创建一个对象.项目2:构建引用3rdParty32.dll的OurApp32.DLL项目3:构建引用3rdParty64.dll的OurApp64.DLL