【问题标题】:Changing from "Any CPU" to "X64"从“任何 CPU”更改为“X64”
【发布时间】:2020-01-25 07:53:04
【问题描述】:

以前,我们必须为 32 位和 64 位 Windows 创建软件。现在,产品管理部门决定我们不再需要支持 32 位 Windows(这对于第三方 SDK 和驱动程序来说非常棒)。

在我们几乎所有的大约 200 个项目中,DEBUG 和 RELEASE 配置的“平台目标”只有“任何 CPU”(只有一些第三方组件的包装器是专用的)。当然,该软件将在具有此类设置的 64 位系统上运行。 但是只为 64 位编译可以允许更多的编译器优化(或者我错了吗?),所以我更喜欢创建 64 位的可执行文件。

如How do I specify the platform for MSBuild? 所示,不可能简单地在 msbuild 命令行中添加一个参数,而是必须更改每个项目...

最简单的方法是什么?还是我不需要在意,因为这样做没有好处?

注意:我们使用 C# 和 Visual Studio Professional 2015 版本 14.0.25425.01 更新 3。

【问题讨论】:

标签: visual-studio msbuild


【解决方案1】:

不可能简单地将参数添加到 msbuild 命令行,而是必须更改每个项目...最简单的方法是什么?

1.正如您在上面提到的链接中描述的那样,您可以轻松地为您当前的解决方案创建x64 解决方案平台,确保启用create new project platforms 选项,VS 将帮助配置x64 平台为所有 200 个项目。

2.但是如果你的团队之前已经创建了x64解决方案平台,但目前部分项目还是Any CPU,如果不想一一更改,可以点击@ 987654329@ 下拉菜单并选择编辑,删除x64 解决方案平台。之后重新创建新的 x64 解决方案平台将有助于创建所有 x64 项目平台。

3.此外,在某些情况下,您可能需要对当前解决方案中的所有项目应用一些更改(自定义构建后事件...),但手动执行此操作需要很多时间。您可以考虑使用Directory.Build.props。(新建一个并将其放在解决方案文件夹中,其中的所有设置将应用于解决方案下的项目)

但由于xx.c​​sproj中的属性会覆盖targets或props文件中的同名属性,请避免在该文件中设置同名属性。

至于这样做有没有好处。

你可以先检查this list,因为你的产品经理决定不再支持32位windows,如果你所有的第三方sdk都支持x64,你可以随意切换到x64。但无论您的应用程序是使用 x64 还是任何 CPU 构建,它都可能不会产生很大的性能差异,因为它总是在 64 位窗口中运行。见the details from svick。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 2011-02-20
    • 2013-01-23
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多