VS402325:项目类型类别Microsoft.HiddenCategory在项目

时间:2017-10-02 15:33:01

标签: tfs tfs2015 vnext

我正在尝试在TFS 2015中创建一个新的TFS vNext构建定义,对于我的一个团队项目,我在尝试创建构建时遇到此错误:

  

500:VS402325:项目类型类别Microsoft.HiddenCategory在项目[TeamProjectName]中不存在

我之前在此Team Project上创建了XAML构建版本,vNext构建在此服务器上的其他Team Projects上。 这个团队项目的设置方式肯定有问题,但我无法弄明白,谷歌搜索这个错误也没什么用。

我认为导出类别可能会给我一个提示,但是HiddenCategory没有被使用(是否怀疑此输出缺少某些类型,例如" Task"?)。 enter image description here

1 个答案:

答案 0 :(得分:1)

您是否从之前版本的TFS升级了?如果是,请确保您已完成Configure features after an upgrade

根据错误消息,类别中没有{ "$group": { "_id": "$_id", "Pending" : { "$sum": { "$cond": [ { "$eq": [ "$statuses.statusId", "Pending" ]}, "$statuses.count", 0 ] } }, "Completed" : { "$sum": { "$cond": [ { "$eq": [ "$statuses.statusId", "Completed" ]}, "$statuses.count", 0 ] } }, "Assigned" : { "$sum": { "$cond": [ { "$eq": [ "$statuses.statusId", "Assigned" ]}, "$statuses.count", 0 ] } }, "totalCount": { "$sum": 1 } } }

解决此问题的最简单方法是从正常的团队项目中导出类别,然后将其导入当前失败的团队项目:(首先备份Categories.xml文件以防其他问题。)

db.getCollection('Assignments').aggregate([
    { 
        "$group": {
            "_id": {
                "assignee": "$assignee",
                "statusId": "$statusId"
            },
            "statusCount": { "$sum": 1 }
        }
    },
    { 
        "$group": {
            "_id": "$_id.assignee",
            "statuses": { 
                "$push": { 
                    "statusId": "$_id.statusId",
                    "count": "$statusCount"
                },
            },
            "count": { "$sum": "$statusCount" }
        }
    },
    { "$unwind": "$statuses" },
    { 
        "$group": {
            "_id": "$_id",
             "Pending" : {
                "$sum": {
                    "$cond": [ 
                        { "$eq": [ 
                            "$statuses.statusId", 
                            "Pending"
                        ]},
                    "$statuses.count",
                    0 
                    ]
                }
            },
            "Completed" : {
                "$sum": {
                    "$cond": [ 
                        { "$eq": [ 
                            "$statuses.statusId", 
                            "Completed"
                        ]},
                    "$statuses.count",
                    0 
                    ]
                }
            },
            "Assigned" : {
                "$sum": {
                    "$cond": [ 
                        { "$eq": [ 
                            "$statuses.statusId", 
                            "Assigned"
                        ]},
                    "$statuses.count",
                    0 
                    ]
                }
            },
            "totalCount": { "$sum": 1 }
        }
    }   
]);

如果不起作用,您可以尝试通过以下步骤手动添加类别:有关详细信息,请参阅Update a team project manually to support test management。 ( 更新您的类别定义 区域。)

1,导出您的类别定义文件。

Microsoft.HiddenCategory

2,添加witadmin exportcategories /collection:http://MyTFS:8080/tfs/DefaultCollection /p:Project1 /f:”C:\temp\Categories.xml” witadmin importcategories /collection:http://MyTFS:8080/tfs/DefaultCollection /p:Project2 /f:”C:\temp\Categories.xml” 类别并将新WIT添加到隐藏类别(基于团队项目的要求)。

witadmin exportcategories /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\Categories.xml"

3,导入更新的文件。

Microsoft.HiddenCategory