有没有办法强制 msbuild 只构建 x64?
Is there a way to force msbuild to only build x64?
在我的 C# 解决方案的所有组件项目中,“平台目标”在“项目”>“属性”>“生成”中设置为 x64。但是,平台 属性 仍处于“活动状态(任何 CPU”),这是唯一的选择。在构建日志中,我可以看到它正在复制一些 nuget 包的 x64 和 x86 版本。两个问题:
- 如果我已经说明为什么是 x64,为什么它仍在复制 x86 包?
- 有没有办法消除“任何 CPU”作为平台选项并仅构建 x64?
Project>Properties>Build
下的 平台目标 不适合您的构建过程。该选项是为了告诉项目程序集是为哪个平台编译的,而不是你的 nuget 包。因此,该选项无法更改构建平台,您的 nuget 包仍然使用构建平台来判断将哪个版本的 dll 复制到主项目输出文件夹中。
更多信息可以参考this document。
建议
您可以在 Build
下使用 Configuration Manager
您应该找到您的项目,然后选择 x64
来构建您的 项目平台。如果您没有 x64
,则必须单击 新建 来创建它。
更新 1
您的构建配置一团糟。所以请先进入每个项目Properties-->Build-->把Platform target
改成Any CPU
做一个恢复操作。
然后,进入您的 Configuration Manager,删除 Active Solution Platform 下的任何 x64
和 x86
平台Project Platform 如果有的话。然后,单击 Active Solution Platform,然后创建一个新的 x64
平台。
这将为每个项目设置统一的平台设置。
可以参考.
在我的 C# 解决方案的所有组件项目中,“平台目标”在“项目”>“属性”>“生成”中设置为 x64。但是,平台 属性 仍处于“活动状态(任何 CPU”),这是唯一的选择。在构建日志中,我可以看到它正在复制一些 nuget 包的 x64 和 x86 版本。两个问题:
- 如果我已经说明为什么是 x64,为什么它仍在复制 x86 包?
- 有没有办法消除“任何 CPU”作为平台选项并仅构建 x64?
Project>Properties>Build
下的 平台目标 不适合您的构建过程。该选项是为了告诉项目程序集是为哪个平台编译的,而不是你的 nuget 包。因此,该选项无法更改构建平台,您的 nuget 包仍然使用构建平台来判断将哪个版本的 dll 复制到主项目输出文件夹中。
更多信息可以参考this document。
建议
您可以在 Build
下使用 Configuration Manager您应该找到您的项目,然后选择 x64
来构建您的 项目平台。如果您没有 x64
,则必须单击 新建 来创建它。
更新 1
您的构建配置一团糟。所以请先进入每个项目Properties-->Build-->把Platform target
改成Any CPU
做一个恢复操作。
然后,进入您的 Configuration Manager,删除 Active Solution Platform 下的任何 x64
和 x86
平台Project Platform 如果有的话。然后,单击 Active Solution Platform,然后创建一个新的 x64
平台。
这将为每个项目设置统一的平台设置。
可以参考