设置没有更改什么,就是降低了一下目标框架,从 4.7.2 降低到 4.0,然后通讯时候提示句柄失效,切换回 4.7.2 也无效。
后来就重新创建了一个项目,把代码都复制过去,运行无异常。
经过对比文件夹发现,.csproj 文件中配置
<Prefer32Bit>false</Prefer32Bit>
【.NET 4.5】新增的 Prefer 32-bit target platform
这本来是一个很小的feature并且也没有什么模糊的地方,
关键是VS把这个设置成了默认值,当默认为Any CPU的时候,application会被编译成32-bit mode.
默认是勾选上了的,修改到 4.0,因为没有该选项,所以重置为 false,修改回 4.7.2 后,配置依旧是 false。
解决方案:
在属性中勾选【首选32位】,或者在 .csproj 配置文件中 将 false 修改为 true,或者删除该配置。