VS2012在x86,x64,AnyCPU,AnyCPU32bitpreferred和引用第三方DLL之间进行选择

时间:2013-07-19 19:09:18

标签: visual-studio-2012 x86 64-bit anycpu dll-reference

我正在寻找建立新的VS2012 C#项目的最佳方法的建议。我想要同时针对x86和x64架构。但是,我有第三方DLL,我必须参考。提供了相同DLL的两个版本;一个为x86和x64编译的。话虽这么说,我是否需要专门针对x86和x64?我不认为AnyCPU或新的AnyCPU32bitpreferred会适用于我的情况。另外,在同一个项目中引用DLL的正确方法是什么(它们具有相同的名称,但一个是32位,另一个是64位)。谢谢。

1 个答案:

答案 0 :(得分:0)

您的项目设置应该集中在“目标”计算机上,而不是编译计算机上。如果您的目标系统是32位,那么您应该引用第三方库的x86版本,换句话说,如果您的目标计算机是64位,那么您应该引用x64版本。 您不应该/不能将两个库引用到同一个Project中。在任何情况下,您都可以保留项目的两个并行版本,这些版本仅在参考部分中有所不同。 如果您需要创建x64安装程序,那么您可能还会检查此问题的答案:BadImageFormatException x64 Issue

当您不重新分发第三方DLL时,AnyCPU可能很有用,并且您认为它们之前已安装在目标系统上,并且您的开发不需要/使用x64 set的任何特殊功能。在这种情况下,您的代码将以它们安装的格式对第三方DLL进行调用。