Visual Studio 2010: не удалось разрешить mscorlib для целевой платформы .NETFramework, версия = v4.0 - PullRequest
42 голосов
/ 31 марта 2011

В настоящее время мы переносим все наши решения с 2005 на 2010 год (верно, мы пропускаем 2008 год!). Мы также изменяем нашу файловую структуру, чтобы сделать ее более понятной (некоторые общие проекты могут быть вложены в конкретные проекты и т. Д. И т. Д.).

Это все означает, что ссылки должны быть изменены! Кроме того, мы также устанавливаем их все .NET 4.0. Для этого мы создали временное решение «GOD», в котором все 117 проектов находятся в одном решении.

Я делаю это с одним сотрудником, и примерно 2 часа назад все шло по плану. Однако мы столкнулись с проблемой одного из 117 проектов. Этот проект отказывается "отображать" свои ссылки, ресурсы, сервисы и вкладки настроек в свойствах проекта.

Я получаю следующее точное сообщение:

Не удалось разрешить mscorlib для цели фреймворк ».NETFramework, Version = v4.0. Это может произойдет, если целевая структура не установлен или если фреймворк прозвище неправильно отформатирован.

Теперь это раздражает, но становится хуже. Мой коллега, получая то же решение от Subversion, МОЖЕТ реально видеть и изменять ссылки и тому подобное. По сути, в настоящее время проект фактически строится на его машине. Он внес изменения, но я не могу построить этот конкретный проект или просмотреть ссылки.

Что приводит меня к простому выводу, что на моем клиенте должно быть что-то другое, что вызывает проблемы! В Интернете я видел следующие предложения:

  • Установлено несколько версий .NET4.0 (на моем клиенте это не так)
  • .NET v3.5 не устанавливается; v4.0 пытается собрать v3.5 (3.5 установлен на моем клиенте)
  • Ключ регистрации: OnlyUseLatestCLR установлен и все портит! (просканировал мой реестр, этого ключа нигде нет!)

См .: http://connect.microsoft.com/VisualStudio/feedback/details/542789/

Единственное, что я еще не попробовал, что я мог сделать, это восстановить .NET 4.0, но я сильно сомневаюсь, что это проблема, поскольку у нас есть около 100 других проектов, которые я могу отредактировать и построить просто отлично. И C #, и VB.NET.

Ответы [ 20 ]

69 голосов
/ 23 декабря 2011

Возможно, путь к вашему решению слишком длинный:

Значение:

C: \ MyProject \ Folder \ подпапка ...

должно быть меньше 256 символов.

http://wcfvs.blogspot.com/2011/04/could-not-resolve-mscorlib-for-target.html

Я нашел эту ветку, когда у меня была та же проблема, но не было проблем со ссылками. Я нашел ссылку выше, и это решило мою проблему. Надеюсь, это поможет кому-то еще, кто придет сюда с той же проблемой.

24 голосов
/ 31 марта 2011

Microsoft Visual Basic для приложений Расширяемость 5.3 (VBIDE) - это имя дьявола !!!

Видимо, это ссылка, которую мой коллега как-то имел, но я этого не сделал, и из-за этой ссылки ВСЕ умерло. Мы обнаружили это потому, что если вы установите флажок «Показать все файлы» в конкретном проекте (который является проектом VB.NET), вы получите красивую папку «Ссылки», которая обычно отсутствует для проекта VB.Net, как кажется. Там, где вкладка потерпела неудачу, папка показала нам одну ссылку с предупреждением. По-видимому, это то, что компилятор или VS2010 не могли мне сказать, но это было именно то, что мешало нам.

Итак, если вы получаете эту ошибку при работе над проектом, «Показать все файлы», чтобы вы увидели папку «Ссылки» и выяснили, какая ссылка может вызвать ваши проблемы!

Я рада, что нашла это через 3 часа! >. <</p>

18 голосов
/ 21 октября 2013

Я получил эту ошибку этим утром. Я просто сделал следующее:

  1. Перестройте проект
  2. Закрытая Visual Studio
  3. Повторно открыт Visual Studio

и ошибка исчезла.

3 голосов
/ 15 августа 2012

я работал над своим проектом, сохранил работу и закрыл Visual Studio 2010. Когда снова открыли для работы, я получил эту ошибку, я просто закрыл Visual Studio, снова скопировал файл, в котором был сохранен мой проект, и вставил его где-то еще (в файлна моем рабочем столе), и я снова открыл проект с VS2010, и он работал.

3 голосов
/ 21 февраля 2017

У меня была та же проблема со ссылкой (веб-сервис) в моем проекте. И " Справочник службы обновлений ", и " Настройка справки службы " больше не работают.

Хорошо, давайте просто выбросим ссылку (веб) службы и создадим ее снова. Не уходи! То же сообщение об ошибке.

Решение: отредактируйте файл проекта и удалите все, что связано с сервисными ссылками.

Инструкции:

  • Перейдите в Solution Explorer и щелкните правой кнопкой мыши на имени проекта и выберите «Выгрузить проект».
  • Перейдите в обозреватель решений и щелкните правой кнопкой мыши. в названии проекта и выберите «Edit YourProjectName.proj»
  • Удалять каждый элемент, имеющий отношение к вашей (веб) службе ссылки. (Как правило, он содержит текст «сервисные ссылки»)
  • Перейдите в Solution Explorer и щелкните правой кнопкой мыши на имени проекта и выберите «Обновить проект».
  • Теперь снова добавьте ваши (веб) сервисные ссылки.

Проблема решена (ну, это было в моем случае).

Мое предположение о том, что могло произойти: я изменил класс где-то в своем веб-сервисе. Интерфейс не был изменен, и Visual Studio почему-то не видит изменения. Конфигурация (кэшированная?) Больше не совпадает, и настройка / перестройка / удаление (веб) службы завершается неудачей.

2 голосов
/ 16 июля 2013

У меня была эта проблема сегодня, и решение было вручную отредактировать файл Resources.resx .

Мой Resources.resx файл выглядел так:

  <data name="SomeString" xml:space="preserve">
    <value>I am a string</value>
  </data>
  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <data name="MyLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\MyLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Open" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>

Оказалось, что Visual Studio не нравятся два элемента <data> после элемента <assembly>, что странно, учитывая тот факт, что Visual Studio добавил их туда сам.Моя проблема была решена после того, как я переместил их до элемента <assembly>:

  <data name="SomeString" xml:space="preserve">
    <value>I am a string</value>
  </data>
  <data name="MyLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\MyLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Open" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
2 голосов
/ 14 февраля 2013

У меня была та же проблема, и после того, как я попробовал большинство из вышеперечисленного, включая переустановку .Net 4.0 и перезагрузку, все равно не прошло.то есть.ближе к корню диска.Оказывается, каталог и имена файлов были слишком длинными, и я полагаю, что ссылки были усечены и поэтому не могли быть решены.

Проблема пришла сразу же.

1 голос
/ 18 ноября 2016

У меня была эта проблема в Visual Studio 2013 при переходе с .NET 4.5 на .NET 4.6.2. Проблемным проектом был проект веб-сайта.

Visual Studio автоматически запускает какой-либо инструмент, который генерирует Reference.svcmap. Reference.cs начинается с:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

Просто выбор новой версии .NET заставил Visual Studio очистить сгенерированные файлы и не заполнить их обратно. Я попробовал все решения выше, но ни один не работал. В конце концов я выбрал .NET 4.5.1, а затем .NET 4.6.2, и инструмент все-таки запустился. Разница в файлах заключалась только в номере версии инструмента, который был в комментарии, поэтому я мог восстановить файлы из GIT.

1 голос
/ 06 августа 2012

случилось со мной в редакторе ресурсов.

Причина: я импортировал некоторый файл .Targets, в котором определено свойство AppConfigFile, которое, вероятно, перезаписало некоторое внутреннее свойство с тем же именем:

<PropertyGroup>
  <AppConfigFile>...</AppConfigFile>
</PropertyGroup>

Исправлено: переименовано свойство в другое имя, и проблема исчезла.

0 голосов
/ 27 августа 2018

Я столкнулся с этой проблемой сегодня в Visual Studio 2017 в рамках проекта, который, по-видимому, начинался как приложение универсальной платформы Windows, но в конечном итоге остановился на настольном приложении Windows Forms.

Каким-то образом, либо из-за ошибки ветвления, либо из-за проблемы фиксации в управлении исходным кодом, некоторые устаревшие / отброшенные файлы XAML UWP вместе с файлом "project.json" оказались в папке моего проекта.VS больше не будет создавать или запускать мое приложение Windows Forms с ошибкой, аналогичной той, о которой сообщали другие выше (например, «Не удалось разрешить mscorlib для целевой платформы .NETFramework, Version = v4.7»).

После удаления всей устаревшей нежелательной почты UWP (включая «project.json», всех файлов XAML и любой другой связанной ерунды) из папки проекта и перезагрузки решения, ошибки исчезли, и проект был успешно собран и запущен.

Надеюсь, это поможет.

...