【问题标题】:Using standard Visual Studio windows programmatically以编程方式使用标准 Visual Studio 窗口
【发布时间】:2013-08-21 16:18:13
【问题描述】:

我试图在 Visual Studio 2012 中以编程方式调用 standart“创建工作项”窗口。我试图通过使用命令的 GUID 来实现它,但它不起作用。

 DTE dte = Package.GetGlobalService(typeof(DTE)) as DTE;
 dte.Commands.Raise("{4BCF92C9-7FEA-4913-AF26-F93582BA9C7A}", 196608, null, null);

我试图在 Microsoft.TeamFoundation.WorkItemTracking.Client 中找到一些东西,但它没有给我正确的结果。

【问题讨论】:

    标签: visual-studio-2012 uielement


    【解决方案1】:

    如果您有一个 Team Foundation Server 设置,看起来就像您所做的那样,那么您可能可以通过 tfs Web 门户来实现这一点。对我来说,“创建工作项”位于:

    http://myserver:8080/tfs/<Collection>/<Project>/_workItems
    

    【讨论】:

    • 感谢 dtmland 的回答,但我知道这种方式 - 这是不可接受的。我的目的 - 在 Visual Studio 2012 中导致默认的“创建工作项”窗口。
    【解决方案2】:

    我解决了我的问题。

    要在 Visual Studio 2012 中以编程方式调用 standart“创建工作项”窗口,请使用 DocumentService 接口。

    就我而言,它看起来像这样:

        using Microsoft.TeamFoundation.WorkItemTracking.Client;
        using Microsoft.TeamFoundation.WorkItemTracking;
        using Microsoft.VisualStudio.TeamFoundation;
        using Microsoft.VisualStudio.TeamFoundation.WorkItemTracking;
    ...
        private DTE dte;
        private EnvDTE80.DTE2 dte2;
    ...
    
        dte = Package.GetGlobalService(typeof(DTE)) as DTE;
        dte2 = (EnvDTE80.DTE2)dte;
        DocumentService documentService = dte2.DTE.GetObject("Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.DocumentService")
                            as DocumentService;
        WorkItem workItem = new WorkItem(workItemType); // Use type what you need
        object a = new object();
        IWorkItemDocument widoc = docService.CreateWorkItem(workItem, a);
        docService.ShowWorkItem(widoc);
    

    【讨论】:

    • 我知道这是一个旧线程,但是这在 Visual Studio 2019 中是否发生了变化?当我使用该代码时,我的 documentService 变量为空。 (我相信这在 VS 2017 中有效)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    相关资源
    最近更新 更多