Предупреждение Visual Studio: «Не удалось прочитать некоторые свойства, связанные с решением»


160

Когда я открываю свое решение, я получаю диалог с этим предупреждением. Решение (одно веб-приложение, один проект класса) создается без ошибок.

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

Ответы:


281

Я только что исправил аналогичную проблему с решением VS2010 с 35 проектами ... Причина была дублирована

GlobalSection(TeamFoundationVersionControl)

раздел в файле решения. Я закрыл решение, удалил дубликат конфигурации GlobalSection (TeamFoundationVersionControl) и перезагрузил решение, а предупреждающее сообщение исчезло.

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


6
Была такая же проблема с VS2012, это решение работало. Спасибо!
Давид Айрапетян

4
Можно ли предположить, что GlobalSection (TeamFoundationVersionControl), который должен быть удален, является нижним?
frostshoxx

4
У меня была такая же проблема, и я просто удалил нижнюю. Это решило проблему. Кажется, что слияние иногда вызывает это.
MaiOM

12
Это был нижний для меня (это было явно устарело). Я подозреваю, что VS использует первый, который находит. В моем случае это было вызвано слиянием TFS.
Игби Крупный человек

2
Та же проблема в VS2013 с дублированием GlobalSection - исправлена ​​удалением
Марк Хосанг

31

Похоже, есть несколько причин для этого предупреждения. Я получил его, потому что мой файл решения, SccNumberOfProjects = 4когда было только 3.


25

Лучшее решение , чтобы заставить VS регенерировать конфиги. Сделать это:

  1. Откройте файл sln с помощью текстового редактора.
  2. Прокрутите вниз, пока не дойдете до последнего элемента «EndProject».
  3. Удалить все после этого.
  4. Сохраните, закройте и перестройте решение, и все будет восстановлено.

Это решение было идеальным для моей ситуации. Я получал две подобные ошибки: The following property is missing or has incorrect value: SccLocalPath63а The following property is missing or has incorrect value: SccLocalPath64
user919426

2
Это решение работало для меня в VS 2017. Оно фактически восстанавливает его при открытии файла sln. Обратите внимание, что EndProject - это одно слово.
Варун Шарма

Это было исправление для меня. Единственная разница в файле решения была SolutionGuid.
ADH

2
Это сработало для меня в VS 2017. Единственное, что я должен добавить, это ... если вы используете Папки решений ... вам придется отбросить ваши проекты обратно в правильные "слоты"
Prisoner ZERO

1
Это работало для меня в VS 2019. У меня были дубликаты разделов, как упоминалось в других решениях, но когда я их удалил, они вернулись. Это был единственный, который работал.
Fehays

8

Я только что исправил аналогичную проблему в VS2012 с 44 проектами.

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

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

В стороне: я подозреваю, что большинства этих проблем можно было бы избежать, уделив более пристальное внимание .sln во время слияния веток и коммитов, но кто знает, о чем иногда думает VS ...


5

У меня было множество ошибок выше. Я переименовал проект, сохранил закрытый, открыл заново, изменил имя обратно. Это воссоздает файл .sln и в моем случае вынимает все лишние элементы.


Здесь проще всего исправить. Не пытайтесь копаться в .slnпоисках ошибок.
Джонатан Ландрум

Не могли бы вы рассказать об этом немного подробнее? Некоторые пользователи могут не понимать. Вы хотите переименовать его в проводнике, Visual Studio или в реальном файле?
iTechy

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

2

Решил идентичное сообщение об ошибке в VS2012, следуя указаниям Boycs. Для меня проблема была в двух посторонних GlobalSection(SolutionConfigurationPlatforms) = preSolutionблоках внизу моего файла SLN.


2

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


2

В VS 2015 у меня было два из этих разделов: « GlobalSection (TeamFoundationVersionControl) = preSolution »

Первый включал последний проект, добавленный к решению, второй (ближе к концу файла решения) - нет. После удаления второго, решение открылось в VS 2015 без ошибок.


1

Другие ответы уже объясняют, как решить проблему. Может быть, я могу помочь, чтобы не получить проблему снова:

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

Что я выучил

Файлы решений ужасно объединяются. Если вы добавляете проект, сделайте следующее: 1. Получите последнюю версию 2. Добавьте свой проект 3. Подтвердите

Если вы видите файл решения в разделе ожидающих изменений, но вы не видите изменений в режиме сравнения, вы должны нажать «Сохранить все». При добавлении вашего нового проекта VisualStudio также изменила решение. Тем не менее, это несохраненное изменение на данный момент.


1

Проверьте ваши SccNumberOfProjects в вашем файле .sln, он может отличаться от вашего фактического номера проекта.


0

я исправил подобную проблему в vs2012.

в моем случае проблема заключалась в том, что значение свойства SccProjectName0 внутри GlobalSection в файле MySolutionName.sln было пустым.

я решил это, установив значение SccProjectName0 с копией этого строкового значения из другого решения и заменив имя проекта в строке на текущее (кстати, если имя вашего проекта в нем является пробелом (''), необходимо заменить на '\ u0020').

*

в моем случае проблема начинается после того, как я по ошибке открыл решение, управляемое TFS, со старым файлом MySolutionName.sln того же решения, когда это решение контролировалось VSS.


0

VS2015 Обновление 3. [GlobalSection (TeamFoundationVersionControl) = preSolution] был дублирован в файле решения. Нижний дубликат содержал проект, который ранее был удален ... поэтому удаление этого дубликата решило проблему. Я думаю, что дублирование было вызвано предыдущей проблемой слияния.


0

Я могу добавить еще одно возможное решение - хитрое слияние означало, что в одном из разделов SccProjectUniqueName / SccProjectName / SccLocalPath в разделе GlobalSection (TeamFoundationVersionControl) были номера, которые не были уникальными, хотя SccNumberOfProjects был правильным. Исправлена ​​нумерация, исчезло сообщение об ошибке.


0

VS 2019 - я впервые открывал проект VS 2017 в VS 2019. В окне «Вывод» нажмите «Показать вывод из:» DDL и просмотрите параметры, так как вы можете увидеть дополнительную информацию об ошибке.

В моем случае решение состояло в том, чтобы просто перенастроить сопоставления управления исходным кодом на 2019 год.

  • Зайдите в Team Explorer
  • Нажмите кнопку «Управление подключениями» (заглушка)
  • Нажмите ссылку «Управление подключениями» и подключитесь к проекту ...
  • ...

-1

У меня была такая же проблема, и мое решение:

  1. Раскройте решение в VS
  2. Установите для платформы решений значение по умолчанию
  3. Сохрани это
  4. Закройте VS
  5. Откройте файл .sln в Notepad ++ (или любом другом редакторе).
  6. Удалите все остальные элементы платформы решений из любого места
  7. (например: {73E03C8F-1F76-45E2-9D45-FA040A63F0AA}. Release | Any CPU.Build.0 = Release | Any CPU)
  8. Сохраните его и снова откройте решение.

Это работает для меня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.