Visual Studio 2015 构建类库时出现可移植性错误。
Visual Studio 2015 构建类库时出现可移植性错误。
我正在重新构建一个类库(可移植)。
库-->目标设置为:
错误列表中显示的第一个错误是:
严重程度 代码 描述 项目文件 行数
错误 CS0234
命名空间'System'中不存在类型或命名空间名为'Linq'的内容(是否丢失程序集引用?)
如果我重新构建,会出现以下错误:
严重程度 代码 描述 项目文件 行数
错误 正在构建的项目的处理器架构"MSIL"与引用"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll"的处理器架构"x86"不匹配。此不匹配可能导致运行时失败。请考虑通过配置管理器更改项目的目标处理器架构,以使项目和引用之间的处理器架构保持一致,或者依赖于具有与项目的目标处理器架构匹配的引用的处理器架构。
注意 如果我更改目标(但我不想这么做,只是为了测试!)为.NET Framework 4.0.3,则错误消失,并且所有重新构建都正常进行!
我已尝试对整个解决方案进行清理/重建,关闭/重新打开VS,重新启动Windows...
昨天,我更新了所有VS2015的扩展和更新,这也更新了很多东西(Azure,VS重新启动等...)
使用语句:
问题:
1)可能发生了什么导致我的VS安装损坏?
2)我可以进行哪些测试?
编辑
在文件系统中,*c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable* 下有以下文件夹:
v4.0\
v4.5\
v4.6\
v5.0\
该项目是一个主要包含.resx文件和一个.cs文件的类库。
所有的.resx文件都显示错误,如果我点击其中一个,会出现以下错误:
无法解析目标框架'.NETPortable,Version=v4.0,Profile=Profile328'的mscorlib。这可能是因为目标框架未安装或框架标识格式不正确。
编辑2
在配置管理器中,如果我将目标设置为x86,不匹配错误消失了
但是其他错误仍然存在:
实际上似乎
using System.--》指向不同的位置??!!
之前找到了System.Linq。
如果将目标更改为--》Net 4.0,System.Linq就会丢失!
VS到底在哪里搜索System.Linq?
问题原因:在更新Visual Studio 2015的扩展和更新后,由于汇编冲突导致出现错误。根据错误信息显示,您正在尝试构建一个x64位或任意CPU配置的构建,但出现了错误。尝试将构建设置为x86。
解决方法:如果以x86编译成功,则意味着您没有选择,除非找到依赖的x86汇编并单独编译它,或者将代码更新为64位。否则,即使管理人员要求使用x64和任意CPU也无法运行进程。64位处理器可以同时运行32位和64位,而32位处理器只能本地运行32位。
可以进行的测试包括:对比本地工作区和源代码控制中的内容,查看是否有任何更改。如果没有更改,则让同事尝试构建。您可以取消选中图片中的所有目标并编译解决方案,在成功构建后逐个添加目标,以确定根本问题所在。如果所有尝试都失败,可以卸载更新或从上次已知的还原点还原计算机。在更新引用时,始终进行测试以确保不会出现任何问题。
经过尝试,发现以下结论:1)x86不再出现不匹配错误,但无法编译(Linq未找到错误仍然存在,猜测可能是某个.dll文件发生了变化);2)我的工作区与源代码控制同步,同事能够构建它;3)目标问题是Windows Phone 8.1 <---> NET 4.0;4)我将尝试卸载Phone 8.1仿真器(我没有任何更新)。
文章到此结束。