Сбой пользовательской контекстной команды def для выпуска в Azure DevOps 2019 - PullRequest
1 голос
/ 23 марта 2019

У меня есть расширение TFS с некоторыми контекстными командами для определений релизов.Запись вклада в манифесте выглядит следующим образом:

    {
        "id": "foo",
        "type": "ms.vss-web.action",
        "description": "...",
        "targets": ["ms.vss-releaseManagement-web.release-definition-explorer-context-menu"],
        "properties":
        {
            "title": "Foo",
            "text": "Foo",
            "icon": "images/foo-16.png",
            "group": "actions",
            "uri": "web/main.html"
        }
    },

Файл main.html, реализующий команду, отправляется:

function OnFoo(SrcCtxt)
{
    //...
}

VSS.init({ usePlatformScripts: true });
VSS.register("foo", {execute: OnFoo});

Работает в TFS 2015..2018, сломан в 2019 году.Команду Foo можно увидеть в меню, когда вы щелкаете по ней, загружается main.html (вы можете увидеть это с помощью инструментов dev), но функция OnFoo не вызывается.

На консоли отображаетсяследующее:

Ни в одном канале не найдено обработчика для сообщения: {"id": 1, "methodName": "", "instanceId": "MyPublisher.myext.foo", "instanceContext": {"definition": {"id": 1, "name": "Пример определения выпуска", "path": "\"}}, "params": null}

Версияиз VSS.SDK.js является последней, только что загруженной.

РЕДАКТИРОВАТЬ: моя теория работы заключается в том, что я не регистрирую команду правильно.Исторически, было два способа зарегистрировать один - через объект и через функцию.Заменил мой код на последний, получил другое сообщение в консоли:

Uncaught (в обещании) Зарегистрированный объект MyPublisher.myext.foo не найден.

1 Ответ

0 голосов
/ 25 марта 2019

При поиске образцов, я нашел дополнительную строку в свойствах вклада - registeredObjectId.Как только я добавлю это в свой манифест, команды будут работать как раньше.Значение этого свойства должно соответствовать первому аргументу VSS.register(), где раньше использовался ID вклада.

Не круто, Microsoft. Не круто.


РЕДАКТИРОВАТЬ: другие вещи в расширении тоже сломались.Во-первых, объект $ в JQuery больше не доступен.Больше не подходит для формата StackOverflow, теперь это запись в блоге .

...