Вызовы метода Workspace.DeleteMapping при указании сопоставленного пути

Я использую TFS SDK. Я сопоставил проект с TFS в Visual Studio. И в моем коде я проверяю путь к серверу, а локальный путь уже сопоставлен? Их значения верны, но метод workspace.DeleteMapping() выдает ошибку, когда я пытаюсь удалить сопоставленный путь.

Пишет "Не найдено никакого сопоставления в [локальном пути]". Но метод workspace.IsLocalPathMapped(LocalFolder) возвращает истинное значение?

WorkingFolder workfolder = new WorkingFolder(ServerFolder, LocalFolder);
workspace = workspaces[0];
if (workspace.IsServerPathMapped(ServerFolder) && workspace.IsLocalPathMapped(LocalFolder))
{
    workspace.DeleteMapping(workfolder);
}

person mozkarakoc    schedule 18.09.2012    source источник


Ответы (1)


IsServerPathMapped и IsLocalPathMapped сообщают вам, находится ли данный путь сервера или локальный путь под (или эквивалентен) одному из сопоставлений рабочей области. Например, предположим, что у вас настроено рекурсивное сопоставление следующим образом:

C:\dev\project -> $/TeamProject/Main

Если вы запустите IsServerPathMapped для элемента "$/TeamProject/Main/Solution/foo.cs", он вернет true, потому что этот файл находится под одним из ваших рекурсивных сопоставлений. Функция IsServerPathMapped спрашивает: «Если я сделаю GetLatest, этот файл будет в моей рабочей области», и здесь ответ «да».

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

person Taylor Lafrinere    schedule 18.09.2012
comment
Спасибо за объяснение. Я все еще работаю над получением последних версий и сборкой проектов с помощью TFS SDK. На нашем сервере все проекты уже отображены. И когда я использовал метод workspace.Get(), он получит последнюю версию всего проекта в рабочей области. Но я хочу, чтобы он приносил только избранный проект. Я попытался удалить проекты сопоставления в рабочей области и создал сопоставление только выбранного проекта, но не смог. - person mozkarakoc; 18.09.2012
comment
Как выглядят ваши сопоставления? Я предполагаю, что вы говорите, что $/ сопоставлены с каким-то локальным диском. Вы хотите начать с удаления сопоставления для $/, а затем добавить сопоставление для $/TeamProject (или глубже в дереве, если хотите). - person Taylor Lafrinere; 18.09.2012
comment
Именно так, как вы сказали. У меня $/ сопоставлен с моим локальным, но я хочу получить последний $/TeamProject на свой локальный. Поэтому я попытался удалить сопоставление $/ и создать сопоставление с помощью $/TeamProject. - person mozkarakoc; 18.09.2012