【问题标题】:Extending Team Explorer 2015+ via VSIX通过 VSIX 扩展 Team Explorer 2015+
【发布时间】:2017-12-17 04:23:01
【问题描述】:

我想知道,对于在“较新”工作室中扩展 Team Explorer 的支持是否发生了重大变化。我想在 Team Explorer 2017 的“待更改”页面中添加一个新部分。

根据here 的信息,我为这些东西实现了一个基类:

public class TeamExplorerBaseSection : TeamExplorerBase, ITeamExplorerSection { ... }

然后从中派生出:

[TeamExplorerSection(SectionId, TeamExplorerPageIds.PendingChanges, 900)]
public class MyNewSectionSection : TeamExplorerBaseSection
{
    public const string SectionId = "8AAE3BBE-E5FE-4D9E-9244-EA86F67B8512";
}

这在 VS 2013 中有效,没有任何问题。当我按下 F5 时,至少 VS 2017 的实验版本不会在所需页面中显示任何新部分。

让我怀疑的是,您现在可以通过 Microsoft 的 NuGet 找到几乎所有需要的组件。如您所见,here 微软也通过 NuGet 支持 Team Explorer,但出于某种原因决定在 VS 2013 上停止它。另一个线索是官方VSIX-docu 不会对这种扩展发表任何评论。

这是否意味着不应再扩展 Team Explorer?

【问题讨论】:

  • 扩展团队资源管理器的工作方式仍与以前的 Visual Studio 版本相同。您是否针对 15.0 版本的 Microsoft.TeamFoundation.Controls 程序集进行构建?请注意,您引用的 NuGet 包不是官方的 Microsoft 包。它是由用户创建和上传的。
  • 我还在我为 VS 2012 构建的扩展团队资源管理器示例中提供了示例基类。您可以在此处找到:code.msdn.microsoft.com/windowsdesktop/…
  • @ChadB 谢谢。包作者是 Microsoft,但所有者是某个用户。项目站点链接到 MS 文档。但你是对的,他可能不是来自 MS。有时在 NuGet 上很难看到 :-)。
  • @ChadB 我会在 2017 年试用您的样品并返回结果。
  • ITeamExplorer* 接口存在于一个程序集中,该程序集的版本控制与主要的 VS 版本相匹配。这就是所有 TFS 程序集的版本控制方式。这意味着在新的主要 VS 版本中支持扩展需要针对更新的 TFS 程序集重新编译。否则,MEF 将不会发现该扩展,因为该类型的版本将是旧的。事后看来,冻结类型的版本会很好,但此时那艘船已经航行了。

标签: visual-studio tfs vsix team-explorer


【解决方案1】:

在我的情况下,解决方案是从我的引用中删除一个名为 Microsoft.TeamFoundation.All 的 NuGet 包。这个包已经过时了,我没有注意到。

VSIX 的封装情况让我有些恼火。我最终构建了自己的 NuGet 包,其中包含 VS 2015、VS 2017 等所需的包。这样我就不会依赖于在本地机器上搜索和引用,因为我们正在使用 VSTS 作为一个团队工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多