问题标签 [vnext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
126 浏览

tfs - 使用 vNext 构建后将内部版本号与 TFS 工作项相关联

我们需要将工作项与 TFS 构建相关联。通常,在 TFS 中使用 XAML 构建模板时,这是可能的(或者我们可以说“自然”)(通过 WorkItem 的集成构建字段。在下面的屏幕截图中,它被称为“集成在”)。我们目前正在尝试从 XAML 构建模板迁移到 VSTFS 2015 的 vNext 版本,并进一步与 Octopus Deploy 集成以进行 CI/CD 实践。

我们现在已经完成了迁移的一半,因为我们坚持制作这个 vNext 模板来将 TFS 工作项与其内部版本号相关联。如果不执行此步骤,如果我们完成此迁移,将很难为该构建中交付的每个工作项获取相关的构建号。

当我们搜索 MSDN 博客时,我们得到了一个与我们的要求类似的帖子(下面给出了链接),但我尝试了,但没有成功。

https://blogs.msdn.microsoft.com/tfssetup/2016/05/09/build-association-with-work-items-in-vnext/

因此,请提出可以解决我们要求的方法。

0 投票
1 回答
57 浏览

visual-studio - 我怎样才能始终如一地自动化,使用 TFS vNext 构建步骤,构建我们的开发团队使用 Visual Studio 工作的任何解决方案文件?

开发人员使用 Visual Studio (VS) GUI 开发他们的解决方案,并使用解决方案文件 (.SLN) 构建他们的所有项目。使用 vNext 的构建团队必须使用 MSBuild 而不是 devenv.exe(Visual Studio 可执行文件)来自动化这些构建。这是一个严重且长期存在的问题,因为 MSBuild 不仅无法构建多种项目类型,而且构建顺序以完全不同且复杂的方式定义。

Microsoft 的一些建议 ( https://docs.microsoft.com/en-us/archive/blogs/msbuild/incorrect-solution-build-ordering-when-using-msbuild-exe ) 是在每个 .* proj 文件并删除 .SLN 文件中的所有依赖项规范。这听起来像是一个从未在相对无能为力的构建团队中工作过的人试图让开发团队:

  • 做很多他们认为浪费时间的额外工作
  • 改变他们做事的方式

构建团队需要的是一种自动化 VS 允许开发团队构建的任何东西的方法。如果给 VS 一个 SLN 来构建,那么 vNext 构建需要能够以相同的方式使用相同的 SLN。相反,vNext 目前只提供 MSBuild 作为构建工具。MSBuild 比 devenv 有更多的选项,所以如果可以使用 SLN 以与 VS 相同的方式管理依赖项,并且可以升级以构建所有相同的项目类型,那就太好了。

PatrickLu -MSFT 在Build project using devenv.exe in TFS 15RC1 Build Server 中引用了一些前瞻性努力,以增强 vNext 构建步骤以允许使用 devenv 代替 MSBuild,但这些努力似乎已被放弃。

也许有人已经开发了一个自定义的 vNext 构建步骤来使用 devenv 构建?

0 投票
2 回答
106 浏览

tfs - TFVC:在 vnext 构建期间删除工作区失败

我们正在使用“Azure DevOps Server”2019 Update1 运行 TVFC。

在我们的 vnext 构建结束时,我们想要删除工作区。我们使用 tf.exe 执行此操作。但我们必须指定工作区所有者,因为运行构建的帐户(即在构建代理上为构建服务配置的帐户)与用于创建工作区的帐户不同。

工作区所有者是“项目集合构建服务(DefaultCollection)”。因此,作为删除我们使用的工作区的命令,例如:

这在大多数情况下都有效。偶尔我们会收到一条错误消息:

但是在查看构建计算机时,工作空间确实存在。因此,对于调试目的,在我们尝试删除之前,我添加了对“tf.exe 工作区”的调用以获取所有工作区的列表。

在错误情况下,您会看到工作区所有者不是英语,而是德语:

这是零星的,我们不知道它取决于什么。工作区所有者怎么可能有时用德语列出,有时用英语列出?

任何帮助表示赞赏!