c# - 禁用“首选 32 位”的目标“任何 CPU”无论如何都会使用 32 位首选项进行编译
问题描述
我将目标设置为“任何 CPU”,禁用“首选 32 位”。
我想知道为什么我的进程仍然在 64 位系统上以 32 位运行,所以我检查了 CorFlags。它确认,我的可执行文件是在启用 32BITPREF 的情况下编译的。
什么会导致这个?
解决方案
我检查了项目文件以查看<Prefer32Bit>
实际设置的内容,但奇怪的是它根本没有明确指定。
所以 VS 显然默认为<Prefer32Bit>
iftrue
标记不存在,这与What AnyCPU 的真正含义 As Of .NET 4.5 和 Visual Studio 11一致:
在 .NET 4.5 和 Visual Studio 11 中,奶酪已被移动。大多数 .NET 项目的默认值还是 AnyCPU,但现在 AnyCPU 的含义不止一种。AnyCPU 有一个额外的子类型,“任何 CPU 32 位首选”,这是新的默认...
<Prefer32Bit>false</Prefer32Bit>
手动添加解决了这个问题。
不知道为什么标签首先丢失了。也许该项目是从 .Net Framework 4.5 之前的版本更新的,而 VS 在执行项目更新时错过了添加?
但是,当标签丢失时不设置“首选 32 位”复选框似乎是 VS 的疏忽。
推荐阅读
- hyperlink - 如何自己在 Fluid 中生成分页链接
- c# - Lightinject 可选属性注入
- c++ - 二进制文件中的 C++ Seekp() 正在删除数据
- java - 从java调用时批处理goto:eof不起作用
- gradle - Micronaut:某些包中的记录器未出现在 AWS lambda 和本地
- microsoft-graph-api - Outlook 联系人同步
- javascript - TypeError:图像构造函数:ReactNative 中需要“new”
- python - 如何根据其他几列填充一列?
- elasticsearch - ELASTICSEARCH - 根据值返回过滤字段
- javascript - 在组件内部调用组件本身