मुझे पता लगाना है कि परियोजना स्थानीय रूप से मैप की गई है या कोड से नहीं। मैं Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory.GetTeamProjectCollection()
का उपयोग कर Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory.GetTeamProjectCollection()
का उपयोग कर सभी टीएफएस प्रोजेक्ट प्राप्त कर सकता हूं, workItemStore = new WorkItemStore(projects)
के लिए foreach
कर सकता हूं और बहुत सारी परियोजना जानकारी प्राप्त कर सकता हूं लेकिन IsMapped
या MappingPath
जैसे कुछ भी प्राप्त कर सकते हैं।टीएफएस में मैप किए गए प्रोजेक्ट को प्रोग्रामेटिक रूप से चेक किया गया है?
मुझे जो जानकारी चाहिए वह विजुअल स्टूडियो में टीम एक्सप्लोरर के स्रोत नियंत्रण एक्सप्लोरर से आसानी से पहुंचा जा सकता है, लेकिन मुझे इसे सी # कोड से करना होगा।
है यही कारण है कि मैं क्या करने की कोशिश की:
var projects = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(_tfsServerUri));
projects.Authenticate();
var workItemStore = new WorkItemStore(projects);
foreach (Project pr in workItemStore.Projects)
{
pr.IsLocal;
}
युपीडी: उत्तर
MikeR का जवाब अच्छा है, लेकिन मैं जोड़ने के लिए यह एक दोष है कि चाहते हैं। यदि आपके पास आपकी मूल निर्देशिका मैप की गई है, लेकिन आपके पास वास्तव में आपके स्थानीय कंप्यूटर पर इस रूट निर्देशिका से सभी प्रोजेक्ट नहीं हैं, तो मिकर का समाधान अभी भी सभी प्रोजेक्ट्स लौटाएगा।
TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(_tfsServerUri));
teamProjectCollection.Authenticate();
VersionControlServer versionControl = teamProjectCollection.GetService<VersionControlServer>();
string computerName = Environment.MachineName;
WindowsIdentity windowsIdentity = WindowsIdentity.GetCurrent();
// get yours local workspaces
Workspace[] workspaces = versionControl.QueryWorkspaces(null, windowsIdentity.Name, computerName);
foreach (Project pr in workItemStore.Projects)
{
var mapped = false;
foreach (Workspace workspace in workspaces)
{
var path = workspace.TryGetLocalItemForServerItem("$/" + pr.Name);
if (!String.IsNullOrEmpty(path) && Directory.Exists(path))
{
mapped = true;
}
}
// do what you want with mapped project
}