我有一段代码可以查询tfs的历史记录但是在我的机器上我得到了一个异常 话说:
C:\ SDAM没有工作文件夹映射。
但是,如果我在同事机器中运行同一段代码,则没有问题。
我正在使用:
我尝试过的事情:
我感到非常困惑,任何建议都会受到赞赏。这段代码已被我们广泛使用,我需要重复使用它。
的结果
tf workspaces /format:detailed /collection:http://XXXX/tfs/
工作区:XXXXXXXX
所有者:Domain \ zzzzzzz
电脑:XXXXXXXX
评论:
收藏:cccc \ ddddd
权限:私人
位置:服务器
文件时间:当前工作文件夹:
$ / SDAM:C:\ SDAM
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
}
答案 0 :(得分:1)
您的工具无法找到工作文件夹映射,因为它不在您正在构建的SDK版本的工作文件夹缓存中。如果您没有指定Team Project Collection并希望仅通过本地路径连接到TFS,TFS将查找工作文件夹缓存以确定哪个服务器和服务器路径对应于该本地路径。
如果你是针对SDK的10.0版构建的,那么它正在寻找由Visual Studio 10.0(即Visual Studio 2010)创建的工作文件夹缓存。
但是,如果您运行的是Visual Studio 11.0和tf
11.0,那么它会将工作文件夹信息存储在Visual Studio 11.0的工作文件夹缓存中(即Visual Studio 2012)。
因此,您的工具无法仅使用工作文件夹映射来自行引导。你需要:
让您的工具连接到相关的TFS服务器,以便获取工作文件夹信息的新副本
将您构建的SDK版本与您在Visual Studio中使用的TFS版本相匹配
如果您想动态加载最新的SDK,您可以bind an assembly resolution handler。