【问题标题】:VS2012 Choosing between x86, x64, AnyCPU, AnyCPU32bitpreferred and Referencing 3rd Party DLLsVS2012 在 x86、x64、AnyCPU、AnyCPU32bitpreferred 和引用 3rd 方 DLL 之间进行选择
【发布时间】:2013-07-19 04:33:20
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    如果您不重新分发第 3 方 DLL,并且您假设它们先前已安装在目标系统上,并且您的开发不需要/使用 x64 集的任何特殊功能,AnyCPU 可能会很有用。在这种情况下,您的代码将以它们安装的格式调用第 3 方 DLL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 2011-09-22
      相关资源
      最近更新 更多