Як зупинити Visual Studio від "завжди" перевірки файлів рішення?


152

Здається, без причин, кожен раз, коли я відкриваю рішення, Visual Studio перевіряє файл sln.

Якщо я порівняю її з попередньою версією, змін не буде. Але це насправді засмучує, оскільки рішення кожного перевірено.

Я використовую VS 2008 та TFS 2008, обидва SP2.

Будь-яка ідея про те, як я можу зупинити цю справу? Або функція / помилка постачальника управління джерелом TFS для VS?


чи є у вас проект одиничного тестового проекту?
Мітч Пшеничний

1
TFS підтримує одночасні замовлення, і доки не буде модифікація файлу .sln, багаторазова замовлення не є проблемою.
Дірк Волмар

5
Коли файли * .sln мають фактичні зміни, вони є жахливим кошмаром для злиття, оскільки проекти в межах даються довільними, але не унікальними ідентифікаторами. Я великий прихильник одночасних замовлень, але більшість наших * .sln залишаю заблокованими.
Річард Берг

3
ЦЕ ФІКСОВАНО В VS2013 !!! Я відкриваю те саме рішення у 2012 році, і він перевіряє .sln, відкривається у 2013 році, і він залишається ясним.
felickz

2
Я час від часу бачив це з усіма версіями версій від Visual Studio 2010 та до новітньої версії, Visual Studio 2015 Update 3. Це трапляється приблизно в половині разів, коли я відкриваю рішення, і, здається, це частіше трапляється для рішень з багатьма проектами.
Tore Østergaard

Відповіді:


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

У коментарі Дена додається необхідна інформація - не потрібно видаляти всі глобальні розділи - лише ту частину, яка, здається, додається пакетом нугетів єдності.
Jordan0Day

ще те саме у 2012 році
BlackICE

6

З пам’яті, якщо ви користуєтесь меню « Інструменти», «Параметри » та вибираєте панель « Контроль джерела», «Середовища», має бути кілька варіантів налаштування способу взаємодії IDE з керуванням версією.

Я думаю, що деякі з цих варіантів контролюють замовлення на відкриту поведінку.


1
так ... вони дозволяють вам автоматично оформити замовлення, підказати від оформлення замовлення або нічого не робити ... але нічого, що допомагає в цій проблемі
CodeClimber

Ви не можете просто сказати "ні, не перевіряйте", коли це підкаже?
Скотт Марлоу

Я б хотів, щоб я був єдиним розробником у команді ... на жаль, я не можу розраховувати на те, щоб усі розробники були старанними
CodeClimber

CodeClimber, кожен раз, коли ви запускаєте VS, він робить автоматичну перевірку, і ви хочете, щоб зупинка та вимкнення автоматичної перевірки не вирішила проблему. Що за?
veight

1
Для тих, у кого в списку параметрів немає "Середовища", змініть підключення з "Місцевого" на "Сервер" (джерело: stackoverflow.com/questions/26843300/… )
VenerableAgents

5

На всякий випадок, як я, ви не змогли змусити його працювати, і ви виявите, що один або кілька проектів також перевіряються, я знайшов більш просте рішення. Запишіть проект (и), який він постійно перевіряє. Перейдіть до Файл - Контроль над джерелами - Змініть Контроль джерела, а потім від’єднайте відповідні проекти. Клацніть OK, Зберегти все, а потім поверніться до Контролю зміни джерела та прив’яжіть проект назад до рішення. Сподіваємось, це спрацює і для інших


3

Хоча не запобігти проблемам , в першу чергу, ліберальне використання інструментів Team Foundation Силових «Не Undo Unchanged» команда (сюрприз сюрприз) скасування відкладеного редагування , якщо було зроблено ніяких змін.


Оновлене посилання для Power Tools Power Tools: marketplace.visualstudio.com/…
Jaider

3

Дозволити реєстрацію та порівняти обидва файли. Якщо VS додав щось подібне

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

у вас виникла помилка VS з рішенням у VS2008, але не перенесена на VS2005

Щоб отримати докладнішу інформацію, перегляньте це посилання :


Жоден проект у рішенні не має цього рядка XML
CodeClimber

2

Файл Visual Studio Solution безшумно перевіряється через один або декілька проектів рішення за допомогою бібліотеки Microsoft 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


дякую за посилання Найджел, вся команда відчуває це питання
Болді,

1

Це особливість / помилка однієї з проектних систем, що завантажується в рішення. Спробуйте видалити різні типи проектів (C #, VB, C ++, веб-сайт, веб-додаток, тест підрозділу, срібло світла ...), поки він не зникне; це ваша відповідь.


0

Ви зберігаєте свої файли перед порівнянням? Це сталося зі мною деякий час тому, і я продовжую говорити, що між файлами ніяких змін немає, але через деякий час я розумію, що раніше я не зберігав файли і порівнював його з версією на диску, а не з версією в пам'яті.

Щоразу, коли ви відкриваєте якесь рішення у Visual Studio, воно виконує деякі операції, які можуть спричинити зміну файлів .sln або проекту, і тоді він попросить вас перевірити файл. Це відбувається, коли в машині розробників відбуваються зміни в структурі папок або коли вони не мають однакових версій усіх файлів. Можливо, хтось додав проект у якусь папку, а інший розробник має той самий проект в іншому місці. Інший випадок, я вважаю, що це трапляється, коли ми маємо рішення з деякими проектами c ++, чомусь один із цих проектів c ++ мав файл .res з абсолютними шляхами. Як тільки цей файл автоматично генерується VS, він змінився з машини розробника на машину розробника.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.