2

我们有一个面向 4.0 的可移植类库。WPF 应用程序引用了这个标准的 .NET 4.0 应用程序。

PCL 引用 System.Net.NetworkCredential 类。

当我们构建 .NET 4.0 应用程序时,我们得到一个错误:

The type 'System.Net.NetworkCredential' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'.

有几个帖子说要安装 KB2468871。这不适用/改变事情。

如果我们在应用程序中添加对“System.Net 4.0.0.0”的程序集引用,则错误会发生变化:

Reference to type 'System.Net.NetworkCredential' claims it is defined in 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Net.dll', but it could not be found...

当然 NetworkCredential 不在 System.Net 中,它在 System 程序集中。

如果我重新定位到 4.5 一切正常,但我们需要使用 4.0。

有任何想法吗?谢谢。

4

1 回答 1

1

KB2468871 使可移植库能够在 4.0 上运行,它不允许它们在 Visual Studio 中构建。

如果添加对 System.Net 4.0.0.0 的引用,第一个错误应该会消失。如果没有,那么您的机器缺少所需的补丁。

如果正在使用:

视觉工作室 2010

您需要安装便携式库工具:http: //visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981/。这将安装一个补丁,使这项工作。

Visual Studio 2012 或 Visual Studio 2013

这应该是开箱即用的,如果没有,那么您的安装很可能处于不完整状态。尝试修复您的安装。

于 2013-11-14T01:41:09.113 回答