Подтвердить что ты не робот

Visual Studio 2010: не удалось разрешить mscorlib для целевой среды ".NETFramework, Version = v4.0"

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

Все это означает, что ссылки необходимо изменить! Кроме того, мы также устанавливаем их все в .NET 4.0. Для этого мы создали временное решение "БОГ" со всеми 117 проектами в одном и том же решении.

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

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

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

Теперь это раздражает, но ухудшается. Мой коллега, получая такое же решение от подрывной деятельности, МОЖЕТ на самом деле видеть и изменять ссылки и все. На самом деле, в настоящее время проект на самом деле СТРОИТСЯ на его машине. Он совершил изменения, но я не могу создать этот конкретный проект или увидеть ссылки.

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

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

Смотрите: http://connect.microsoft.com/VisualStudio/feedback/details/542789/

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

4b9b3361

Ответ 1

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

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

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

Я рад, что нашел это, хотя, спустя более 3 часов!. > & Л;

Ответ 2

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

Имея в виду:

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

У меня была такая же проблема с ссылкой на веб-службу в моем проекте. Оба "Обновить служебную ссылку" и "Настроить сервисную ссылку" больше не работают.

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

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

Инструкции:

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

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

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

Ответ 6

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

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

Проблема сразу же появилась.

Ответ 7

У меня была эта проблема сегодня, и было решено вручную вручную отредактировать файл 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" />

Ответ 8

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

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

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

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

Ответ 9

У меня была эта проблема в 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.

Ответ 10

Убедитесь, что целевая структура в свойствах проекта установлена ​​правильно - по умолчанию это ".Net Framework 4.0 Client" - возможно, вам требуется ".Net Framework 4.0"

см. этот поток, который похож на ту же проблему

вы также можете просмотреть эту статью, которая касается отладки проблемы с тем же симптомом с использованием рефлектора

Ответ 11

У меня была такая же проблема, когда исходный каталог был только прочитан. Если я синхронизирую свое рабочее пространство с нашим сервером управления версиями (Perforce), он сделает все каталоги только по умолчанию, если не выбрать, что я проверяю каталог для редактирования. Иногда я ленив и не делаю этого, так как я единственный человек, работающий над некоторыми из этих проектов в любой момент времени. Но эта ошибка убирает прозрачный флаг только для чтения.

Ответ 12

Что случилось со мной, так это то, что все мои ссылки на мой проект были потеряны, поэтому мне пришлось снова вставить их.

Ответ 13

для меня, просто установка Target Framework 4.0 решила мою проблему. Иногда целевая структура понятна. Это может вызвать проблемы.

Ответ 14

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

Это, в свою очередь, было вызвано некоторыми ссылками на службы. Когда ссылка на службу импортируется или обновляется, visual studio генерирует файлы .datasource, где имя файла является полным именем. Это означает, что в некоторых случаях имена на самом деле длинные.

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

Удаление этих файлов .datasource устраняет проблему.

Ответ 15

Я переносил проект vb.net на VS 2015. У меня также была такая же проблема. Проблема заключается не в структуре .Net, так как я смог создать новый проект, ориентированный на конкретные версии Framework, и ему это удалось.

В моем случае проект ссылался на FPSpreadADO и некоторые другие подобные библиотеки. Он отлично работал, как только я удалил эти ссылки.

Ответ 16

У меня была аналогичная ошибка в проекте PCL XamarinForms.
Я узнал, что ошибка связана с ссылкой на проект. Я обновил xamarin.forms до последней версии, и по некоторым причинам NuGet не смог удалить все ссылки предыдущей версии из файла проекта (xml).
Итак, просто я удалил следующую строку из файла проекта, и она сработала!

<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />

Надеюсь, что это поможет кому-то...

Ответ 17

Я тоже получил эту ошибку. ("Не удалось разрешить mscorlib для целевой платформы".NetFramework 4.5.1 ". Это может произойти, если целевая платформа не установлена или если неправильно задан моникер платформы".).

Это произошло, когда я изменил фреймворк с 3.5 на 4.5.1 в проекте VB 2013. Решение состояло в том, чтобы удалить все ссылки в файле .vbproj: все ссылки помечены как Группа ссылок и COM-ссылок.

Конечно, сразу после этого в проекте появились все другие ошибки.

Затем я начал копировать их обратно, по одному в том же месте, копируя из резервной копии, чтобы определить, какие из них были проблемными (я скопировал те, которые связаны с новыми ошибками, которые я получил, чтобы исправить их).), обновляя проект каждый раз, пока соответствующее окно не будет отображено правильно.

Это привело к тому, что это были некоторые ссылки на библиотеки, которые создали эту проблему. Я надеюсь, что это может кому-то помочь. Ура!

Разработчик.

Ответ 18

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

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

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

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

Ответ 19

В большинстве случаев это произошло из-за отсутствия ссылки.
В обозревателе решений → Справка → вы можете увидеть недостающую ссылку (желтым цветом), просто добавьте ссылку, и все будет в порядке.

Ответ 20

Наткнулся на это сегодня.

Удаленные папки bin и obj.

Открыл Visual Studio, и это неожиданно сработало.

Ответ 21

Моим решением было загрузить и установить Microsoft.NETCore.UniversalWindowsPlatform из диспетчера пакетов NuGet