Как остановить Visual Studio от «всегда» проверки файлов решения?

152

По-видимому, без причины, каждый раз, когда я открываю свое решение, Visual Studio проверяет файл sln.

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

Я использую VS 2008 и TFS 2008, оба SP2.

Есть идеи, как я могу остановить это? Или это функция / ошибка поставщика управления исходным кодом TFS для VS?

CodeClimber
источник
у вас есть проект модульного тестирования как часть решения?
Митч Уит
1
TFS поддерживает одновременные проверки, и пока нет изменений в файле .sln, многократные проверки не являются проблемой.
Дирк Фольмар
5
Когда файлы * .sln имеют реальные изменения, их объединить - ужасный кошмар, потому что проектам внутри даны произвольные, но не уникальные идентификаторы. Я большой сторонник одновременных проверок, но я держу большинство наших * .sln закрытыми.
Ричард Берг
3
ЭТО ИСПРАВЛЕНО В VS2013 !!! Я открываю то же самое решение в 2012 году, и оно проверяет .sln, открытое в 2013 году, и оно остается чистым.
felickz
2
Время от времени я видел это во всех версиях, начиная с Visual Studio 2010 и вплоть до новейшей версии, Visual Studio 2015 Update 3. Это происходит примерно в половине случаев, когда я открываю решение, и, похоже, чаще встречается для решений со многими проектами.
Торе Эстергаард

Ответы:

121

Это происходит, когда в файле .sln содержится следующее:

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

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

Грэм Кларк
источник
21
Похоже, что пакет Unity NuGet, возможно, сделал это с моим файлом решения в VS 2010. Я удалил этот раздел, и моя проблема с автоматической проверкой была решена. Спасибо, Грэм!
Дэн Морк
14
две мои любимые технологии - TFS и EntLib - какая пара дорогих.
1
У меня есть такой раздел, но я не хочу его удалять, поскольку он содержит данные, которые я хочу сохранить - что теперь? М.С. закрыл этот вопрос как «не воспроизводимый» - глупо? connect.microsoft.com/VisualStudio/feedback/details/573538/…
mattanja
Комментарий Дэна добавляет необходимую информацию - нет необходимости удалять все глобальные разделы - только часть, которая, кажется, добавляется пакетом unity nuget.
Jordan0Day
все тот же в 2012 году
BlackICE
6

Из памяти, если вы используете меню « Инструменты», «Параметры» и выбираете панель « Управление исходным кодом», «Среды», должно быть несколько параметров для настройки взаимодействия интерфейса IDE с управлением версиями.

Я думаю, что некоторые из этих опций управляют проверкой открытого поведения.

jussij
источник
1
да ... они позволяют вам оформить заказ автоматически, запросить извлечение или ничего не делать ... но ничего, что поможет с этой проблемой
CodeClimber
разве вы не можете просто сказать «нет, не проверяйте», когда это вам подсказывает?
Скотт Марлоу
Я хотел бы быть единственным разработчиком в команде ... к сожалению, я не могу полагаться на то, что все разработчики прилежны
CodeClimber
CodeClimber, каждый раз, когда вы запускаете VS, он выполняет автоматическую проверку, и вы хотите, чтобы остановка и отключение автоматической проверки не решали проблему. Что за?
veight
1
Для тех, у кого нет «Сред» в их списке параметров, измените ваше соединение с «Локальное» на «Сервер» (источник: stackoverflow.com/questions/26843300/… )
VenerableAgents
5

На всякий случай, как и я, вы не можете заставить его работать, и вы обнаружите, что один или несколько проектов также проверены, я нашел более простое решение. Запишите проект (ы), которые он продолжает проверять. Перейдите в «Файл» - «Контроль исходного кода» - «Изменить контроль исходного кода» и отмените привязку соответствующих проектов Нажмите «ОК», «Сохранить все», затем вернитесь в «Изменить управление исходным кодом» и привяжите проект к решению. Надеюсь, это будет работать для других

user408720
источник
3

Несмотря на то, что в первую очередь это не помогло устранить проблему, либеральное использование команды «Отменить без изменений» в Team Foundation Power Tools (неожиданно удивит) отменит ожидающее редактирование, если не было внесено никаких изменений.

Дейв Робертс
источник
Обновлена ​​ссылка на Team Foundation Power Tools: marketplace.visualstudio.com/…
Jaider
3

Разрешите оформление заказа, а затем сравните оба файла. Если VS добавил что-то вроде

<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />

вы испытываете ошибку VS с решением в VS2008, но не перенесены на VS2005

Проверьте эту ссылку для получения дополнительной информации:

Луис Филипе
источник
Ни у одного проекта в решении нет такой строки XML
CodeClimber
2

Файл решения Visual Studio извлекается в автоматическом режиме через один или несколько проектов решения с использованием библиотеки Microsoft Enterprise. Я полагаю, что это связано с утилитой настройки библиотеки Enterprise, которая позволяет управлять конфигурацией различных блоков приложений - http : //msdn.microsoft.com/en-us/library/ff649479.aspx

Посмотрите эту публикацию обратной связи Microsoft: http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open

Найджел Белхэм
источник
спасибо за ссылку Найджел, все команды испытывают эту проблему
Baldy
1

Это особенность / ошибка одной из систем проектов, загружаемых в рамках решения. Попробуйте удалить различные типы проектов (C #, VB, C ++, веб-сайт, веб-приложение, модульный тест, silverlight ...), пока они не исчезнут; это твой ответ.

Ричард Берг
источник
0

Сохраняете ли вы свои файлы перед сравнением? Это случилось со мной некоторое время назад и продолжаю говорить, что между файлами нет никаких изменений, но через некоторое время я понимаю, что раньше я не сохранял файлы, а сравнивал с версией на диске, а не с версией в памяти.

Каждый раз, когда вы открываете какое-то решение в Visual Studio, оно выполняет некоторые операции, которые могут привести к изменению файлов .sln или проекта, а затем запрашивает файл. Это происходит, когда происходят изменения в структуре папок на компьютере разработчика, или когда у них нет одинаковых версий всех файлов. Может быть, кто-то добавил проект в какую-то папку, а другой разработчик имеет такой же проект в другом месте. Другой случай, когда я вижу, что это происходит, когда у нас есть решение с некоторыми проектами c ++, по некоторым причинам, один из этих проектов c ++ имел файл .res с путями абсолютных значений. После того как VS автоматически сгенерировал этот файл, он перешел с компьютера разработчика на компьютер разработчика.

Я бы посоветовал вам открыть файл .sln и найти абсолютные или относительные пути, которые могут отсутствовать на некоторых машинах разработчика, в зависимости от того, какие файлы они получают из вашего Source Control.

Carlos
источник