所有组件都应该针对相同的架构吗?

时间:2015-08-17 18:03:26

标签: .net x86-64 cefsharp

某些第三方库(例如CefSharp)需要将架构设置为x86x64,而不是Any CPU。这是否适用于解决方案中的所有项目,或仅适用于"启动"一个?

一般来说,启动项目是x86,而其他所有({x}}显然是一个有效的配置,但是Any CPU都是以32位模式运行?

3 个答案:

答案 0 :(得分:2)

CefSharp要求您选择x86或x64的原因是因为它依赖于本机C ++ DLL来提供CEF / Chromium浏览器。在本机DLL中没有这样的AnyCPU概念。因此Visual Studio需要知道在构建和调试时是否将32位或64位CEF DLL复制到bin目录中。

回答您的具体问题:

只在启动项目上设置平台就可以了。其他所有东西都可以留在AnyCPU上。

通常这种配置没问题。这意味着您的程序将只能在32位模式下工作。部署时,您只需要包含bin \ x86 \ Release目录中的32位版本的CefSharp和CEF二进制文件(libcef.dll等)。

答案 1 :(得分:1)

只要你不混合使用x64和x86库就可以了。如果你的某个库是x86,其余的是任何CPU,你就可以了。

答案 2 :(得分:1)

这是部署详细信息。您应该创建两个安装程序,一个用于32位操作系统,另一个用于64位操作系统。用户选择哪一个适合他的机器。

64位安装程序应部署64位版本的CefSharp可执行文件。所有程序集都只是编译为AnyCPU。

32位安装程序应部署32位版本的CefSharp。所有程序集仍然编译到AnyCPU。但是,您可以覆盖角落情况,其中具有64位操作系统的用户出于某种原因更喜欢使用32位版本的程序。只需在EXE项目中设置“首选32位”选项即可。或者选择x86作为旧VS版本的平台目标。其他组件留在AnyCPU。

如果你不想打扰支持两者,那么最后一个适用于任何用户。