Переносимая библиотека классов — необходимо добавить ссылку на сборку «System.Net, версия = 2.0.5.0».

У нас есть переносимая библиотека классов, предназначенная для версии 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.

Есть идеи? Спасибо.


person user1867382    schedule 12.11.2013    source источник
comment
Я могу воспроизвести это с помощью VS2013 и .NET 4.5.1. Вы можете сообщить об этом на сайте connect.microsoft.com.   -  person Hans Passant    schedule 12.11.2013
comment
Создан отчет об ошибке 808382 с простейшими образцами для загрузки. Было бы хорошо, если бы у людей были обходные пути. connect.microsoft.com/VisualStudio/feedback/details/808382/   -  person user1867382    schedule 13.11.2013


Ответы (1)


KB2468871 позволяет запускать переносимые библиотеки в версии 4.0, но не позволяет создавать их в Visual Studio.

Первая ошибка должна исчезнуть, если вы добавите ссылку на System.Net, 4.0.0.0. Если этого не произойдет, значит, на вашей машине отсутствует необходимый патч.

Если используете:

Visual Studio 2010

Вам необходимо установить Portable Library Tools: http://visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981/. Это установит патч, который заставит это работать.

Visual Studio 2012 или Visual Studio 2013

Это должно работать из коробки, если нет, то скорее всего вы устанавливаете в незавершенном состоянии. Попробуйте восстановить вашу установку.

person David Kean    schedule 14.11.2013