C# 具有物理文件路径异常的TFS查询历史记录
我有一段查询tfs历史记录的代码,但是在我的机器上我得到了一个异常 说: 没有C:\SDAM的工作文件夹映射 然而,如果我在同事的机器上运行同样的代码,就不会有问题 我正在使用:C# 具有物理文件路径异常的TFS查询历史记录,c#,visual-studio-2012,tfs,C#,Visual Studio 2012,Tfs,我有一段查询tfs历史记录的代码,但是在我的机器上我得到了一个异常 说: 没有C:\SDAM的工作文件夹映射 然而,如果我在同事的机器上运行同样的代码,就不会有问题 我正在使用: Microsoft.TeamFoundation.Client;版本10 Microsoft.TeamFoundation.VersionControl.Client;版本10 VS2012项目更新4 4.5框架 我尝试过的事情: 刷新缓存 删除缓存 检查了工作文件夹并使用Team Foundation SIDKE
- Microsoft.TeamFoundation.Client;版本10
- Microsoft.TeamFoundation.VersionControl.Client;版本10
- VS2012项目更新4
- 4.5框架
tf workspaces /format:detailed /collection:http://XXXX/tfs/
工作区:XXXXXXXX所有者:域\zzzzz
计算机:XXXXXXXX
评论:
收藏:cccc\ddddd
权限:私有
位置:服务器
文件时间:当前 工作文件夹:
$/SDAM:C:\SDAM
i可数函数库;
字符串SourceControlPath=@“C:\SDAM”;
var tfsUri=新Uri(@“http://XXXX/tfs/");
var tfs=tfstreamprojectcollectionfactory.GetTeamProjectCollection(tfsUri);
var vcs=tfs.GetService();
VersionSpec fromVersion=null,toVersion=null;
fromVersion=新的ChangesetVersionSpec(1);
toVersion=新的ChangesetVersionSpec(2);
t历史=
询问历史(
SourceControlPath,
LatestVersionSpec.实例,
0,
RecursionType.Full,
无效的
fromVersion,
toVersion,
Int32.MaxValue,
是的,
假);
if(tfhistory!=null)
{
//做点什么
}
您的工具找不到工作文件夹映射,因为它不在您正在构建的SDK版本的工作文件夹缓存中。如果未指定团队项目集合,并且只希望通过本地路径连接到TFS,TFS将在工作文件夹缓存中查找,以确定哪个服务器和服务器路径对应于该本地路径
如果您是根据SDK的10.0版本进行构建,那么它将查找由VisualStudio10.0(即VisualStudio2010)创建的工作文件夹缓存
但是,如果您正在运行Visual Studio 11.0和tf
11.0,则它会将工作文件夹信息存储在Visual Studio 11.0(即Visual Studio 2012)的工作文件夹缓存中
因此,您的工具无法仅使用工作文件夹映射来引导自身。您需要:
如果您想动态加载最新的SDK,您可以。是否需要查询本地映射的路径,并且不能只使用
$/SDAM/
的服务器路径?是的,因为当时我只知道本地映射的路径。更改用户名参数的值是否有帮助?否,返回相同的异常。您是否可以编辑问题并将tf Workspace/格式:详细信息/收集:http://XXXX/tfs/
进入问题?非常感谢,你答对了。这是一台新机器,我只运行了VS2012,没有运行vs2010。一旦我在2010年设置了工作区,世界上一切都正常了。所有这些现在都有意义,但在当时没有意义。
IEnumerable tfsHistory;
string SourceControlPath = @"C:\SDAM";
var tfsUri = new Uri(@"http://XXXX/tfs/");
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tfsUri);
var vcs = tfs.GetService<VersionControlServer>();
VersionSpec fromVersion = null, toVersion = null;
fromVersion = new ChangesetVersionSpec(1);
toVersion = new ChangesetVersionSpec(2);
tfsHistory =
vcs.QueryHistory(
SourceControlPath,
LatestVersionSpec.Instance,
0,
RecursionType.Full,
null,
fromVersion,
toVersion,
Int32.MaxValue,
true,
false);
if (tfsHistory != null)
{
//Do something
}