【问题标题】:Visual Studio 2015 build class library portable errorVisual Studio 2015 构建类库可移植错误
【发布时间】:2015-11-20 15:29:27
【问题描述】:

我正在重建一个类库(便携式)。

图书馆 --> 定位设置为:

错误列表显示在第一位:

严重性代码描述项目文件行 错误 CS0234
命名空间“System”中不存在类型或命名空间名称“Linq”(您是否缺少程序集引用?)

如果进行重建,我会收到错误:

Severity    Code    Description Project File    Line

错误 正在构建的项目的处理器架构“MSIL”与参考“C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll”、“x86”的处理器架构不匹配”。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便在项目和参考之间对齐处理器体系结构,或者依赖具有与项目的目标处理器体系结构匹配的处理器体系结构的参考。

注意如果我更改定位(但我不想这样做,仅用于测试!) 到 NET Framework 4.0.3,错误消失,所有重建都很好!

我已尝试清理/重建整个解决方案,关闭/重新打开 VS,重新启动 Windows...

昨天我更新了所有的 VS2015 扩展和更新,也更新了很多东西(Azure、VS 重启、ecc...)

使用语句:

问题: 1) 可能发生了什么损坏了我的 VS 安装?

2) 我可以做哪些测试?

编辑

在文件系统中,在 *c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable* 下 我有这些文件夹:

v4.0\

v4.5\

v4.6\

v5.0\

该项目是一个类库,本质上包含 .resx 和一个 .cs 文件。

所有 .resx 文件都显示错误,如果我点击其中一个,我会得到:

无法解析目标框架的 mscorlib '.NETPortable,版本=v4.0,配置文件=Profile328'。如果发生这种情况 未安装目标框架,或者如果框架名字对象是 格式不正确。

EDIT2

如果我将目标设置为 x86,则在配置管理器中 错误不匹配消失 但 其他错误仍然存​​在:

基本上是这样的

使用 System.--> 指向不同的位置 ??!!

在 System.Linq 被发现之前。

如果我更改 Targeting-->找到 Net 4.0.3 System.Linq

如果我更改 Targeting-->Net 4.0 System.Linq 丢失!

VS 到底在哪里搜索这个 System.Linq?

【问题讨论】:

  • 所以你做了所有的更新然后问题就开始了?
  • 来吧@Spiderman77,错误正在告诉你到底是什么问题和或问题如果..它期望在标题using System.Linq中的使用中看到同样在更改目标时这告诉你1 或 2 件事 1. 它向后兼容 2. 你设置的更高的框架在其他不受支持的文件中有 dll .. 你使用Nuget
  • @MethodMan 我认为他有这种用法,这就是错误的来源。
  • @MethodMan 我没有改源码
  • 该错误是由您试图破解原始问题引起的。复杂的问题确实让我们很难非常帮助您,非常关键的是您只关注最初的事故。让您的机器恢复正常工作往往需要一种没人喜欢发布的答案。

标签: c# visual-studio-2015 portable-class-library


【解决方案1】:

问题:1) 可能发生了什么损坏了我的 VS 安装?

昨天我更新了所有的 VS2015 扩展和更新,也更新了很多东西(Azure、VS 重启、ecc...)

正如您所说,您已应用更新。这不知何故导致了装配冲突。 根据错误消息,您似乎正在尝试构建 x64 位或任何 cpu 配置构建,但它正在引发错误。尝试将您的构建更改为以 x86 为目标。

如果它编译为 x86,那么这意味着你别无选择,除非你找到依赖的 x86 程序集并单独编译它或将代码更新为 64 位。 否则你无能为力运行你的进程 x64 和任何 cpu,即使管理层说它必须是。 64 位处理器可以同时运行 32 和 64。32 位处理器原生只能运行 32。

2) 我可以做哪些测试?

您可以做的第一件事是区分本地工作区和源代码控制中的内容。希望您使用的是源代码控制,并且不要签入损坏的构建。看看有什么变化。可能回滚。

如果没有从源代码更改代码,则让同行尝试构建它。

您可以取消选中图片中的所有目标并编译您的解决方案。在成功构建后重新添加目标并缩小作为根本问题的目标。

如果一切都失败了,请卸载您的更新或从最后知道的还原点还原您的 PC。

在更新引用时,最好进行测试并确保没有任何问题。

【讨论】:

  • @Hi SoftwareCarpenter,我已经尝试过你的建议,[查看我更新的帖子] (stackoverflow.com/questions/33865936/…)。长话短说:1)x86 不再给出不匹配错误但无法编译(Linq not found 错误仍然存​​在。这里怀疑:某些 .dll 已更改?) 2)我的工作区与源代码管理同步,并且对等方能够构建它 3)目标问题,正如我在另一篇文章中所解释的那样,是 Windows Phone 8.1 NET 4.0 4)我将尝试卸载 Phone 8.1 模拟器(我没有任何更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 2013-06-27
  • 2015-11-14
  • 1970-01-01
  • 2013-07-19
相关资源
最近更新 更多