我有一个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});2018年,2018年破产,2019年破产。Foo命令可以在菜单中看到,单击它时,main.html会加载(您可以通过dev工具看到它),但是没有调用OnFoo函数。
控制台显示以下内容:
在任何消息通道上都找不到处理程序:{"id":1,“methodName”:"instanceId":"MyPublisher.myext.foo",“instanceContext”:{“定义”:{“id”:1,“名称”:“示例发布定义”,“路径”:“}”,"params":null}
VSS.SDK.js的版本是最新的,刚刚重新下载。
编辑:我的工作原理是,我没有注册命令的权利。历史上,有两种方式来注册一个-通过一个对象和通过一个函数。将我的代码替换为后者,在控制台中得到另一条消息:
无法找到未注册的对象MyPublisher.myext.foo。
发布于 2019-03-25 14:32:39
在搜索样本时,我发现了贡献属性下的另一条线- registeredObjectId。一旦我将它添加到我的清单中,这些命令就会像以前一样工作。该属性的值必须与VSS.register()的第一个参数相匹配,而贡献ID以前就是该参数。
不酷微软。不酷,
编辑:扩展中的其他东西也坏了。首先,JQuery的$对象似乎不再可用了。不再适合StackOverflow格式,现在是一篇博客文章。
https://stackoverflow.com/questions/55307971
复制相似问题