标签: tfs2010

TFS Build未按预期转换web.config

目标是让TFS构建并部署2个以上的不同配置,并让web.config转换文件在其输出中包含预期的内容.这是在ASP.NET MVC项目中.

替代文字

Web.Debug.Config - 请参阅PasteBin.
Web.Release.Config - 请参阅PasteBin

2个转换后的配置文件将其Build Action设置为None.这是因为所有3个web.*.配置文件都包含在部署中.

正确配置TFS以构建和部署这两种配置.它按预期部署到2个丢弃位置.在构建定义中没有指定MSBuild参数.

替代文字

问题:2个构建和部署的Web站点具有相同的web.config文件.基本上就好像转换后的文件不存在一样.

预期:指定的更改(xdt:Transform="Replace"xdt:Transform="Remove")将出现在web.config文件中.

如何配置项目或TFS以确保处理web.config转换并将其输出部署到正确的部署位置?我还可以检查/修改什么?

  • 确认转换是好的 - 在命令行上使用MSBuild的Vishal的Joshit教程输出正确的转换!
  • 对于任何后期构建或部署,都没有对.csproj进行任何修改.
  • 是否有任何xdt属性被滥用或丢失?
  • 在构建定义中没有指定MSBuild参数.
  • web.config构建操作是否设置正确?
  • 我们没有使用Web部署包或任何东西.只需要将这些输出xcopy复制到以后的各个Web服务器位置.

如果我遗漏了任何重要信息,请发表评论,我会提供更多相关信息!

msbuild web-config visual-studio-2010 tfsbuild tfs2010

30
推荐指数
3
解决办法
2万
查看次数

如何在TFS 2010中更改现有团队项目上的流程模板?

如何在TFS 2010中已经存在的团队项目中将流程模板更改为MSF for Agile?

我们已将TFS 2008升级到2010,现在我还想将流程模板更改为MSF for Agile(目前为CMMI).我们没有使用工作项功能,所以如果转换中的某些信息丢失无关紧要.

tfs2010 tfs-process-template

28
推荐指数
1
解决办法
3万
查看次数

在TFS 2010中更改现有项目的流程模板的步骤

我有一个TFS服务器安装,随着时间的推移,从TFS 2005升级到TFS 2008再升级到TFS 2010.在安装的生命周期中,已经创建了很多项目并且使用了不同的项目模板.MSF Agile 4.0,4.1,4.2和5.0.以及一些MSF CMMI.

我想要做的是"替换"用于所有这些项目的项目模板,以使用一个新的常用项目:Microsoft Visual Studio Scrum 1.0.

我知道TFS项目模板用作创建新项目的模板,并且在创建后无法修改tfs项目定义.

Uptil现在只使用了TFS的版本控制和构建服务器部分,并且没有现有的工作项类型.

此外,所有项目和构建脚本都依赖于源代码路径保持不变.

在我看来,我有以下选择:

使用正确的项目模板创建新的TFS项目,然后将源代码移动/分支到新项目.

  1. 所有代码都移动到临时团队项目.
  2. 旧项目已删除
  3. 将创建具有原始名称和正确流程模板的新项目
  4. 代码将移至新的团队项目
  5. 临时团队项目已删除

    • 所有构建定义都需要重新创建,这不是一个选项.

    • 源代码移动/分支将"搞乱"版本控制历史记录

替代文字
通过搞乱版本化历史,我的意思是当你移动源代码时,它会在幕后在原始位置执行delete + source重命名,并且历史记录仍将位于旧项目中.这将使历史记录中的搜索变得困难,如果我实际上删除了旧项目,我将在源代码移动之前删除所有历史记录.

这对我来说真的不是一个选项,因为需要多年的代码更改历史记录来支持正在构建的不同应用程序.

使用TFS迁移工具迁移到另一个TFS项目

  • 这与第一种解决方案具有相同的缺点

替换/导入工作项类型,安装新报表,创建新的SharePoint站点

对于每个tfs项目

  • 使用"witadmin deletewitd"删除现有工作项定义

  • 使用"witadmin importwitd"从新流程模板导入每个工作项定义

  • 使用"witadmin importcategories"导入工作项类别

  • 删除报表服务器中项目文件夹中的旧报表

  • 从新流程模板上载报告定义

  • 使用报表管理器修改用于报表的数据源,以指向正确的共享数据源(TfsReportDS和TfsOlapReportsDS)

  • 将报表参数ExplicitProject默认值修改为""(空字符串)并禁用提示用户选项.

  • 使用stsadm导出旧SharePoint网站中的文档

  • 删除旧的SharePoint站点

  • 使用TFS2010 Agile Dashboard站点模板重新创建sharepoint站点

  • 激活站点功能"Team Foundation Server Scrum仪表板"

  • 在TFS项目设置 - >项目门户设置:启用"团队项目门户"并确保URL正确.启用"报告和仪表板引用此团队项目的数据"

最后......

  • 处理仓库

  • 处理分析数据库

即使这涉及许多小步骤,这看起来更有吸引力,因为这个选项不会强迫我移动源代码,我的现有构建定义将完好无损.

我的问题:

是否还有其他方法可以替换我未提及的工作项类型?

和/或我错过了最后解决方案中的任何步骤?

tfs tfs2010 tfs-process-template tfs-workitem

28
推荐指数
1
解决办法
1万
查看次数

无法更改本地TFS 2010路径

运行VS 2010,我现在想要在TFS 2010上构建.在团队资源管理器中,我将连接从旧的TFS 2008构建服务器更改为新的TFS 2010服务器.现在我想将源代码控制从旧的本地目录(C:\ TFS)映射到新目录(C:\ TFS2010).使用文件 - >源代码控制 - >工作区,我可以将项目的顶级映射更改为新位置,单击"递归"复选框.

但是,我注意到,当顶级映射更改时,第二层文件夹的本地路径不会更改.

我尝试删除所有映射,我尝试刷新.尝试重启VS2010.尝试重命名旧目录 - 这是不允许的.

我没有尝试从顶级获取最新版本,因为这将花费太长时间,我可能没有那么多的磁盘空间.

奇怪的是,如果我在选择第二层项目文件夹时转到文件 - >源代码控制 - >披风,它似乎认为该层的映射已经更新.

我有什么想法可以将我的所有项目(甚至只是其中一些项目)重新映射到不同的本地路径?

mapping workspace tfs visual-studio tfs2010

28
推荐指数
4
解决办法
5万
查看次数

TFS 2010和VS 2010在源代码管理中搜索代码

此问题类似于:在文件中查找:在Team Foundation Server中搜索所有代码 但是4年前就被问到了.我正在特别询问有关VS 2010的TFS 2010.

微软最终是否已经开始重新添加搜索文件以查找代码片段,就像他们回到Visual Source Safe一样?如果是这样,如何启用它并使用它?

我尝试添加微软的Power Tools.虽然它具有搜索功能,但搜索仅针对文件名,并忽略查看文件中的内容.:(

tfs visual-studio-2010 tfs2010

28
推荐指数
2
解决办法
2万
查看次数

TFS 2010源代码管理的独立GUI客户端

我正在寻找一个可以在IDE之外使用的TFS 2010 GUI客户端.我只是想在这种情况下使用源代码控制功能.我不是在谈论工作项目或构建管理.

理想情况下,它可以是一个完整的客户端,可以在未安装Visual Studio的机器上使用.

我知道的选项以及为什么我对它们不满意:

还有其他我不了解的吗?

tfs tfs2010

27
推荐指数
2
解决办法
4万
查看次数

TFS搁置从一个分支迁移到另一个分支

我必须将在一个分支中创建的shelveset称为"开发",再将另一个称为"发布".这样我就可以直接合并shelveset然后发布为开发分支创建的版本.

我使用的命令是:

tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release"
Run Code Online (Sandbox Code Playgroud)

它显示此错误:

无法确定工作区

tfs migrate shelveset tfs2010

27
推荐指数
2
解决办法
2万
查看次数

使用TFS SDK API检索TFS团队项目的最快方法是什么?

我有一些答案!随意贡献自己的发现.

据我所知,有三种主要方法可以从TFS中检索一个简单的团队项目列表:

  • 使用新的目录服务(TFS 2010)
  • 使用VersionControlServer(TFS 2008/2010)
  • 使用ICommonStructureService(TFS 2008/2010)

我在进行的简单测试中比较了计算返回项目总数时的三种方法.

方法1:目录服务(仅限TFS 2010)

    public IEnumerable<string> GetTeamProjectNamesUsingCatalog()
    {
        ReadOnlyCollection<CatalogNode> projectNodes = new TfsTeamProjectCollection(collectionUri).CatalogNode.QueryChildren(
                    new[] { CatalogResourceTypes.TeamProject },
                    false, CatalogQueryOptions.None);

        foreach (var tp in projectNodes)
            yield return tp.Resource.DisplayName;
    }
Run Code Online (Sandbox Code Playgroud)

方法2:VersionControlServer

    public IEnumerable<string> GetTeamProjectNamesUsingVCS()
    {
        TfsTeamProjectCollection tp = new TfsTeamProjectCollection(collectionUri);

        foreach (var p in tp.GetService<VersionControlServer>().GetAllTeamProjects(false))
            yield return p.Name;
    }
Run Code Online (Sandbox Code Playgroud)

方法3:ICommonStructureService

    public IEnumerable<string> GetTeamProjectNamesUsingStructureService()
    {
        var structService = new TfsTeamProjectCollection(collectionUri).GetService<ICommonStructureService>();

        foreach (var p in structService.ListAllProjects())
            yield return p.Name;
    }
Run Code Online (Sandbox Code Playgroud)

我跑的单元测试非常简单.我使用.Count()方法来确保我们迭代所有团队项目(.Any()更快,因为它将在返回第一个名称后停止).

结果

对于TFS 2010,连续5次运行3次测试:

TFS 2010图表平均持续时间

TFS 2010持续时间结果

对于TFS 2008,连续5次运行2次测试(无目录服务):

TFS 2008图表平均持续时间

TFS 2008持续时间结果

偏见 …

.net testing tfs tfs2008 tfs2010

26
推荐指数
1
解决办法
7968
查看次数

Team Foundation Server 2010和NuGet包文件夹

我一直在使用Visual Studio 2010中的NuGet包管理器向我们的项目添加第三方依赖项,例如NUnit,Elmah等.默认情况下,这些依赖项安装在与sln文件相同级别的packages文件夹中.

是否有控制此文件夹的创建位置,理想情况下,包文件夹自动添加到版本控制.我知道我可以手动将文件夹移动到我们当前的lib文件夹,但是如果可能的话,我宁愿配置devenv以确保我们可以通过Package Manager进行升级.

谢谢.

tfs2010 visual-studio-2010-sp1 nuget-package

26
推荐指数
1
解决办法
5141
查看次数

TFS"分配给"显示的用户太多

我连接到TFS服务器,当我创建工作项(错误,任务等)时,"分配给"显示太多用户.我找不到限制显示的用户的方法,这将影响连接到服务器的任何其他人.

例如,我在"分配给"下拉列表下:

Administrator
LOCALE SERVICE
User 1
User 2
User 3
User 4
User 5
Run Code Online (Sandbox Code Playgroud)

我希望"分配给"下拉菜单只显示:

User 1
User 3
User 5
Run Code Online (Sandbox Code Playgroud)

我该如何做,以便它在服务器上更改,如果有任何新连接到服务器,他们只能在"分配给"下拉列表中看到三个用户?

tfs tfs2010

26
推荐指数
2
解决办法
2万
查看次数