- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 TFS 2015 update 2,在一台机器上安装了一个代理,代理创建了它的工作空间:
内部开发的一些自定义 MSBuild 任务已在将在代理上运行的构建定义中实现。这些任务对 TFS 服务器执行一些操作。
当构建定义排队等待新构建时,我得到的是:
在构建机器中,我继续运行以下脚本,以验证工作区是否存在:
# Script to find a Team Foundation workspace
param(
[string] $workspaceHint = $(get-location).Path
)
begin
{
# load the needed client dll's
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
# fetches a Workspace instance matching the WorkspaceInfo found in the cache file
function getWorkspaceFromWorkspaceInfo($wsInfo)
{
$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($wsInfo.ServerUri.AbsoluteUri)
$vcs = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
$vcs.GetWorkspace($wsInfo)
# TODO: likely add some convenience properties/methods for easier scripting support
}
}
process
{
# is there only 1 workspace in our cache file? If so, use that one regardless of the hint
$workspaceInfos = [Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.GetAllLocalWorkspaceInfo()
if ($workspaceInfos.Length -eq 1)
{
return getWorkspaceFromWorkspaceInfo($workspaceInfos[0])
}
if (test-path $workspaceHint)
{
# workspace hint is a local path, get potential matches based on path
$workspaceInfos = [Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.GetLocalWorkspaceInfoRecursively($workspaceHint)
}
else
{
# workspace hint is NOT a local path, get potential matches based on name
$workspaceInfos = @($workspaceInfos | ?{ $_.name -match $workspaceHint })
}
if ($workspaceInfos.Length -gt 1)
{
throw 'More than one workspace matches the workspace hint "{0}": {1}' -f
$workspaceHint, [string]::join(', ', @($workspaceInfos | %{ $_.Name}))
}
elseif ($workspaceInfos.Length -eq 1)
{
return getWorkspaceFromWorkspaceInfo($workspaceInfos[0])
}
else
{
throw "Could not figure out a workspace based on hint $workspaceHint"
}
}
脚本无法找到任何工作区。
然后,TFS 2015 Power 工具及其 powershell cmdlet 安装在机器中并运行以下脚本:
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
Add-PSSnapin -Name Microsoft.TeamFoundation.PowerShell
}
$ws = Get-TfsWorkspace -Path C:\t\1\s
$ws.Folders
显示工作区和映射的项目。
排队新构建,继续显示相同的错误。工作区是一个公共(public)服务器,按照 msdn 论坛中的一些古老帖子,我清理了机器中的 TFS 缓存。
知道如何让 Microsoft.TeamFoundation.VersionControl.Client 能够识别工作区吗?
最佳答案
我通过运行类似于以下 PowerShell 脚本的程序修复了我机器上的 ItemNotMappedException 问题;
$localReference = "C:\Repository\Project\Project.sln"
$teamProjectCollection="http://tfsserver:8080/tfs/projectcollection"
$username = $env:UserName
Add-type -AssemblyName "Microsoft.TeamFoundation.Client, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
Add-type -AssemblyName "Microsoft.TeamFoundation.Common, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
Add-type -AssemblyName "Microsoft.TeamFoundation.VersionControl.Client, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
Add-type -AssemblyName "Microsoft.TeamFoundation.VersionControl.Common, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
$folder = [System.IO.Path]::GetDirectoryName($localReference);
Push-Location $folder;
$tfsTeamProjectCollection = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($teamProjectCollection)
$versioncontrolServer = $tfsTeamProjectCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
[Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.EnsureUpdateWorkspaceInfoCache($versionControlServer, $username);
$workspace = $versioncontrolServer.GetWorkspace($localReference)
echo $workspace
Pop-Location
您需要更改初始变量以匹配您的环境。
希望对你有帮助
关于tfs - Microsoft.TeamFoundation.VersionControl.Client.ItemNotMappedException 即使工作区存在并且具有映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41902276/
using Microsoft.TeamFoundation.TestManagement.Client; 我遇到过 - TypeLoadException 未处理 错误描述说: Could not
我有一个从托管 TFS 中提取数据的 MVC 应用程序,当我部署它时出现此错误 Could not load type 'Microsoft.TeamFoundation.Client.BasicAu
我试图加载程序集,以便可以从Powershell连接到TFS,但是尝试添加类型时出现错误。 nuget软件包已成功下载,并且我要添加的程序集存在该文件。 我的代码如下 $sourceCodeDirec
我需要在我的项目中引用 Team Foundation 程序集,但我不能。 在 GAC 中查找 Microsoft.TeamFoundation.* 时,我找不到任何程序集。然后我浏览到 C:\win
所以在 Visual Studio 扩展中,当按下菜单项时,我想检查团队资源管理器中的当前页面是什么。 所以,首先我得到 ITeamExplorer 对象: ITeamExplorer teamExp
我在使用 .net 4.0 的 ASP.NET MVC 4 应用程序中添加了以下引用。 我还在我的应用程序中包含了命名空间,但我仍然看到以下错误: Reference : Microsoft.Tea
在新版本的 TeamFoundation 2013 默认构建模板中,缺少 Workspace 变量。它需要作为一些关键事件的输入参数,如 ConvertWorkspaceItem。如何获取 TfvcT
请任何人知道在 tfs 上 checkin 文件时导致此错误的原因: “'Microsoft.TeamFoundation.Framework.Server.ByteArray' 的类型初始值设定项引
我正在尝试编写一个脚本来使用 powershell 连接到 TFS,但是我卡在了实际连接的部分 $credentialProvider = new-object Microsoft.TeamFound
我有这个 nuget 包(和非扩展包):https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient/ 我看
您好,有人知道我在哪里可以找到使用 nuget 的 Microsoft.TeamFoundation.Framework.Client 吗?我找不到它,因为我正在尝试创建 TfsConfigurati
我只是在寻找 Microsoft teamfoundation dll 的某种替代品。我们正在使用 visual studio 2013 开发我们的软件,我们的更新程序软件从 TFS 中提取信息。 大
使用 TFS 2015 update 2,在一台机器上安装了一个代理,代理创建了它的工作空间: 内部开发的一些自定义 MSBuild 任务已在将在代理上运行的构建定义中实现。这些任务对 TFS 服务器
在源代码管理下加载项目时,我在 VS2013 中收到此错误: 程序包“Microsoft.VisualStudio.TeamFoundation.VersionControl.HatPackage、M
我是否只需要安装 VS2010 SDK ? 有没有像TFS2010 SDK这样的东西,如果有,那是我需要安装的东西,如果有,我在哪里可以得到它? 关于微软的 "Extend Visual Studio
我正在尝试从指定过程参数的 Powershell 中对构建进行排队。我收到以下错误...知道我做错了什么吗? 无法找到类型 [Microsoft.TeamFoundation.Build.Workfl
我正在编写一个从 TFS 获取错误的应用程序。当我在安装了运行 Windows 8 的 visual studio 的机器上运行这个程序时,它工作正常。当我在我的一台运行 Server 2008 R2
我正在 Visual Studio 2015 中构建一个应用程序,以允许人们查看 TFS 服务器的变更集。 我找到了一些示例代码,但它需要引用 Microsoft.TeamFoundation.Fra
我正在尝试通过 WEB API 将工作项提交到 TFS“在线”。它在我的本地机器上工作正常,但是当我将它上传到共享主机服务器时它不工作。 发生了错误。调用 COM 组件返回错误 HRESULT E_F
我必须提供哪种凭据才能正常工作 $tfsServer = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServe
我是一名优秀的程序员,十分优秀!