Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当给定映射路径时,Workspace.DeleteMapping方法引发_C#_Tfs_Tfs Sdk - Fatal编程技术网

C# 当给定映射路径时,Workspace.DeleteMapping方法引发

C# 当给定映射路径时,Workspace.DeleteMapping方法引发,c#,tfs,tfs-sdk,C#,Tfs,Tfs Sdk,我正在使用TFS SDK。我在VisualStudio上用TFS映射了一个项目。在我的代码中,我检查服务器路径和本地路径是否已映射?它们的值为true,但workspace.DeleteMapping()方法在我尝试删除映射路径时抛出 它说“在[本地路径]中找不到任何映射”。但是workspace.IsLocalPathMapped(LocalFolder)方法返回真值吗 WorkingFolder workfolder = new WorkingFolder(ServerFolder, Loc

我正在使用TFS SDK。我在VisualStudio上用TFS映射了一个项目。在我的代码中,我检查服务器路径和本地路径是否已映射?它们的值为true,但workspace.DeleteMapping()方法在我尝试删除映射路径时抛出

它说“在[本地路径]中找不到任何映射”。但是workspace.IsLocalPathMapped(LocalFolder)方法返回真值吗

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

IsServerPathMapped和IsLocalPathMapped告诉您给定的服务器路径或本地路径是否位于其中一个工作区映射之下(或等效于该映射)。例如,假设您的递归映射设置如下:

C:\dev\project -> $/TeamProject/Main
如果在项目“$/TeamProject/Main/Solution/foo.cs”上运行IsServerPathMapped,它将返回true,因为该文件位于一个递归映射之下。IsServerPathMapped函数询问“如果我执行GetLatest,该文件是否会在我的工作区中”,这里的答案是“是”


如果您能详细解释一下您试图用这段代码实现的功能,我可能会为您指出要使用的不同API。

谢谢您的解释。我仍然在使用TFS SDK进行“获取最新信息”和“构建”项目。在我们的服务器上,所有项目都已映射。当我使用workspace.Get()方法时,它将获取工作区中所有项目的最新版本。但我希望如此,它只带来选定的项目。我尝试删除工作区中的映射项目,但仅创建选定项目的映射,但无法创建。您的映射看起来像什么?我想您是说您已将$/映射到某个本地驱动器。您希望首先删除$/的映射,然后添加$/TeamProject的映射(如果您需要的话,可以在树中添加更深的映射)。我已将$/映射到我的本地,但我想将最新的$/TeamProject映射到我的本地。因此,我尝试删除映射$/并使用$/TeamProject创建映射