visual-studio - 有没有办法强制 msbuild 只构建 x64?
问题描述
在我的 C# 解决方案的所有组件项目中,“平台目标”在 Project>Properties>Build 中设置为 x64。但是,Platform 属性仍然是“Active (Any CPU”),这是唯一的选项。在构建日志中,我可以看到它正在复制某些 nuget 包的 x64 和 x86 版本。两个问题:
- 如果我指定了为什么是 x64,为什么它还在复制 x86 包?
- 有没有办法消除“任何 CPU”作为平台选项并仅构建 x64?
解决方案
下面的Platform目标Project>Properties>Build
不是您构建过程的正确选择。该选项是告诉项目程序集是为哪个平台编译的,而不是你的 nuget 包。因此,该选项无法更改构建平台,并且您的 nuget 包仍然使用构建平台来判断将哪个版本的 dll 复制到主项目输出文件夹中。
更多信息可以参考这个文档。
建议
您可以在Build下使用Configuration Manager
您应该找到您的项目,然后选择x64
构建您的项目平台。如果您没有x64
,则必须单击新建来创建它。
更新 1
您的构建配置一团糟。所以请先进入每个项目的Properties --> Build --> change Platform target
toAny CPU
做一个restore操作。
然后,进入您的配置管理器,如果有的话,删除Active Solution Platform和Project Platform下的任何x64
和平台。然后,单击Active Solution Platform,然后创建一个新平台。x86
x64
这将为每个项目设置统一的平台设置。
你可以参考这个类似的问题。
推荐阅读
- python - “NoneType”对象没有属性“打印”错误
- reactjs - 无法从 React-Table 列定义 (React.useMemo) 中读取状态变量
- c++ - slerp() 返回的 Eigen3 四元数中的 NaN
- c++ - 如何在换行后将 std::cout 输出带回顶部
- javascript - Node/Sequelize/MySQL with TS - 通过动态查询查找所有列
- angular - 为什么 Api 在角度上给出 403 错误
- r - 将多列中的字符串拆分为R中的多行
- json - 如何在赛普拉斯的 json 中附加一个新的键值对
- ios - 当我从 iOS 设置屏幕更改文本大小时,iOS 应用 UILabel 崩溃
- android - 相当于 Android 的 Processing 的样式堆栈