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

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

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

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

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

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

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

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

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

посмотреть: http://connect.microsoft.com/VisualStudio/feedback/details/542789/

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

18 ответов


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

значение:

C:\MyProject\Folder\SubFolder...

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

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

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


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

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

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

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


Я получил это предупреждение об ошибке только сегодня утром. Я просто перестроил проект, затем закрыл Visual Studio, снова открыл его, и ошибка исчезла.


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


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

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

проблема возникла сразу.


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

мой ресурсы.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" />

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

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

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

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


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

Visual Studio автоматически запускает инструмент, который создает ссылку.svcmap все. ссылка.КС начинается с:

//------------------------------------------------------------------------------
// <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.


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

Ну давайте просто выбросить (веб) ссылку службы прочь и создать его снова. Нет! То же сообщение об ошибке.

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

инструкции:

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

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


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

посмотреть этой теме это похоже на ту же проблему

вы также можете просмотреть в этой статье который относится к отладке проблемы с тем же симптомом с помощью reflector


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


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


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


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

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

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

удаление этих .файлы datasource удалили проблему.


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

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


У меня была аналогичная ошибка в проекте XAMARINFORMS PCL.
Я узнал, что ошибка была связана со ссылкой на проект. Я обновил xamarin.формы до последней версии и по некоторым причинам 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'))" />

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


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

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

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

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

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

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


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

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

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

надеюсь, что это помогает.