VS2008 и ClearCase :открывающее решение запрашивает проверку без причины

StackOverflow https://stackoverflow.com/questions/625812

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть небольшая проблема, которая приводит к сбою моих автоматических сборок.

Когда мы открываем решение, недавно преобразованное из VS2005 в VS2008, VS через ClearCase запрашивает, чтобы мы извлекли файл решения.

Если мы разрешим это, то это все равно не внесет никаких изменений, и по умолчанию ClearCase не любит проверки без изменений.Итак, мы отменяем проверку - и с этого момента VS счастлив, что смог записать файл .suo.

Если мы отключим чтение файла решения protect, запустим VS2008, он создаст файл .suo. ок, если мы затем отключим захват файла .sln (в любом случае, никаких изменений, поэтому VS2008 не заметит) и снова запустим VS2008, все будет в порядке - не запрашивает проверку.

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

А на сервере сборки нет никого, кто мог бы увидеть диалоговое окно с запросом на проверку, сборка зависает.

Я мог бы изменить (aka bodge) скрипт сборки, чтобы не удалять файл .suo, но я бы предпочел этого не делать.

Редактировать:уточнение - файл .suo НЕ возвращен в ClearClase - это закрытый файл просмотра, который создается VS2008, однако для создания этого файла он хочет получить файл .sln по нереальной причине.

Дальнейшее Редактирование:

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

Это было полезно?

Решение

Хорошо, я нашел решение проблемы, и в действительности это было довольно просто.

Я отключил интеграцию Visual Studio ClearCase на сервере сборки.

VS используется для создания проектов развертывания, поэтому мы вызываем devenv, чтобы сделать это за нас. Однако мы используем его только как движок сборки, и движок сборки никогда не должен знать, как изменить исходные элементы, поскольку все они будут получены из ClearCase. Единственные элементы, которые мы разрешаем изменять серверу сборки, - это атрибуты номера версии файла сборки в файлах AssemblyInfo, но мы делаем это в NAnt, а не в Visual Studio.

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

Другие советы

Этот элемент устранения неполадок получил этот пакет исправлений, который решил проблему в нашей среде разработки. Мы по-прежнему используем VS2005, но я ожидаю, что это та же проблема, что и в VS2008.

Это кажется нормальным для VS2008, он проверяет файл .sln при открытии решения. Мне это тоже не нравится.

Однако проблема заключается в том, что файл .suo также зарегистрирован. Этот файл не должен находиться под контролем исходного кода. Это как файлы proj.user. Я подозреваю, что suo означает «Опции пользователя решения».

Ты мог бы:

  • обновите свой скрипт, чтобы перехватить файл sln в представлении моментального снимка сразу после вашего "cleartool update -force -overwrite".
  • или, чтобы избежать проверки sln, вы могли бы попытаться сохранить .suo file зарегистрировавшийся,

Если приведенное выше предложение работает, то вот пара причин, по которым хотелось бы сохранить этот файл под контролем версий:

  • С тех пор, как файл .suo является одноразовым (VS2008 просто создает новый, если он не существует), наличие под управлением исходным кодом может рассматриваться как способ избежать этого создания (следовательно, избегая обнаружения плагина ClearCase и попытки "добавить в систему управления исходным кодом" или проверить его).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top