Подтвердить что ты не робот

Почему отсутствует <SccProjectName> в файле проекта причина "Файл проекта не связан с контролем источника"

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

Я использую Visual Studio 2012 с TFS 2012. Все было хорошо, но однажды я обнаружил проблему. Когда я добавлю новый проект в свое решение, я всегда получаю это сообщение каждый раз, когда я снова открываю решение:

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

Что бы я ни сделал, у меня все еще есть это сообщение. В окне File- > Source Control- > Advanced- > Change Source Control... все было в порядке. Файлы *.vspscc, которые правильно создаются с хорошим контентом. Я удалял привязку и добавлял ее снова и снова, но это не помогло. Все время у меня было это раздражающее сообщение...

И затем я заметил одно различие в файлах *.csproj. У моего проблемного проекта не было следующих данных XML:

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

Когда я добавил эти строки, проблема была решена...

Есть ли кто-нибудь, кто может сказать мне, почему те элементы, которые отсутствуют, и почему они вызывают такую ​​нескончаемую проблему с раздражающим сообщением о привязке решения?

Спасибо

4b9b3361

Ответ 1

Это происходит из-за того, что файл решения имеет в нем информацию управления контуром, а файл .csproj просто реализует то, что сообщает файл решения.

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

SAK ссылается на "Должен знать", поскольку он извлекает информацию из файла решения. Файл решения должен содержать нечто похожее на то, что показано ниже.

GlobalSection(TeamFoundationVersionControl) = preSolution
        SccNumberOfProjects = 4
        SccEnterpriseProvider = {3BA58AB2-18FA-4F8D-95D4-32DDF27D184A}
        SccTeamFoundationServer = http://TFSSERVER:8080/tfs/DPC
        SccLocalPath0 = .
        SccProjectUniqueName1 = Project1\\Project1.csproj
        SccProjectName1 = Project1
        SccLocalPath1 = Project1
        SccProjectUniqueName2 = Project2\\Project2.csproj
        SccProjectName2 = Project2
        SccLocalPath2 = Project2
        SccProjectUniqueName3 = Project3\\Project3.csproj
        SccProjectName3 = Project3
        SccLocalPath3 = Project3
        SccProjectUniqueName4 = Project4\\Project4.csproj
        SccProjectName4 = Project4
        SccLocalPath4 = Project4
    EndGlobalSection

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

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

До тех пор, пока файл решения и файл vssscc обрабатываются корректно с помощью элемента управления исходным кодом, а затем, когда вы добавляете новый проект, он должен забрать исходные параметры управления из файла решения, а затем применить узлы SCC к новому проекту