Visual Studio 2015 构建类库时出现可移植性错误。

11 浏览
0 Comments

Visual Studio 2015 构建类库时出现可移植性错误。

我正在重新构建一个类库(可移植)。

库-->目标设置为:

enter image description here

错误列表中显示的第一个错误是:

严重程度 代码 描述 项目文件 行数

错误 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重新启动等...)

使用语句:

enter image description here

问题:

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?

0
0 Comments

问题原因:在更新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仿真器(我没有任何更新)。

文章到此结束。

0