Ошибка сценария RequireJS при запросе ReleaseaManagement/Core/RestClient в TFS 2015 и 2017

Я создаю расширение концентратора tfs (2015/2017), и мне нужно прочитать определения выпусков проектов, а также создать выпуски. Я знаю, я мог бы делать прямые вызовы Rest вместо того, чтобы использовать методы остальных клиентов. Но мне они кажутся более удобными.

Когда я пытаюсь получить RestClient Restmanagement, я получаю: Ошибка сценария для: ReleaseManagement/Core/RestClient http://requirejs.org/docs/errors.html#scripterror

Как в TFS.2015.2, так и в TFS.2017

Клиент еще не существует локально?


person Ferdi Öztürk    schedule 04.05.2017    source источник
comment
Не могли бы вы опубликовать фрагмент кода, как вы получаете определения выпуска, когда получаете ошибки? И выкладывать сюда все сообщения об ошибках?   -  person Tingting0929    schedule 05.05.2017
comment
Это все сообщение об ошибке в консоли отладчика IE, и оно не приходит к коду внутри .ts. Это, очевидно, останавливает выполнение в первой строке: import RM_Core_RestClient = require(ReleaseManagement/Core/RestClient);   -  person Ferdi Öztürk    schedule 05.05.2017
comment
Ссылка на: //‹ссылочный путь='../../node_modules/vss-web-extension-sdk/typings/rmo.d.ts' /›   -  person Ferdi Öztürk    schedule 05.05.2017
comment
Вы обращаетесь к этому документу, чтобы узнать о получении клиента REST для управления релизами. github.com/Microsoft/vss- веб-расширение-sdk/blob/master/typings/   -  person Tingting0929    schedule 07.05.2017


Ответы (1)


Вы можете обратиться к этой статье, чтобы узнать, как использовать Rest API в расширении, чтобы прочитать определение выпуска: Написание расширения ReleaseManagement для клонирования существующего определения выпуска.

Код для чтения определения выпуска:

VSS.require(["VSS/Controls", "VSS/Service", "ReleaseManagement/Core/RestClient"],
var rmClient = VSS_Service.getCollectionClient(RM_WebApi.ReleaseHttpClient);
rmClient.getReleaseDefinition(vsoContext.project.id,sourceItemContext.definition.id);

И если вы используете машинописный текст, вам нужно включить «ms.vss-releaseManagement-web.release-service-data-external» во вклад, как показано ниже:

"contributions": [
        {
            "id": "release-status",
            "type": "ms.vss-web.hub",
            "includes": [ "ms.vss-releaseManagement-web.release-service-data-external" ],
            "description": "A hub to show release status",
            "targets": [
                "ms.vss-work-web.work-hub-group"
            ],
            "properties": {
                "name": "hello",
                "order": 99,
                "uri": "app.html"
            }
        }
    ]
person Eddie Chen - MSFT    schedule 08.05.2017
comment
eddchen, мой пример в машинописном тексте. Я вызываю VSS.require([scripts/app], function () {}); и там - поверх моего app.ts - я вызываю import/require для ReleaseManagement/Core/RestClient, но он останавливает выполнение, когда требует этого. Я могу попробовать ваш способ, вызвав его из JavaScript, но как я могу передать его в приложение машинописного текста? (Тем не менее, требование внутреннего машинописного текста также должно работать по замыслу, верно?) - person Ferdi Öztürk; 08.05.2017
comment
Из транспилированного машинописного текста (JavaScript): определить([require, exports, VSS/Controls, VSS/Controls/StatusIndicator, VSS/Controls/TreeView, VSS/Controls/Dialogs, TFS/Core/RestClient, TFS/VersionControl/TfvcRestClient, TFS/ Build/RestClient, ReleaseManagement/Core/RestClient, q], функция (требуется, экспортирует, VSS_Controls, VSS_Controls_StatusIndicator, VSS_Controls_TreeView, VSS_Controls_Dialogs, TFS_Core_RestClient, TFS_VC_TfvcRestClient, TFS_Build_RestClient, RM_Core_RestClient, Q) { - person Ferdi Öztürk; 08.05.2017
comment
@FerdiÖztürk Извините, что не внимательно проверил вашу проблему. Это известная проблема с машинописным текстом, обходной путь включает в себя ms.vss-releaseManagement-web.release-service-data-external. Подробнее см. в моем обновленном ответе. Он работает на моей стороне с машинописным текстом, дайте мне знать, если у вас возникнут проблемы с ним. :) - person Eddie Chen - MSFT; 09.05.2017
comment
Спасибо за обновления. Но у меня это все еще не работает, в консоли выдается та же ошибка сценария (на compatbasejs 77 742). можешь пропинговать меня в скайпе4б? [email protected] - person Ferdi Öztürk; 09.05.2017