2016-11-05 3 views
5

У меня есть приложение с угловым2, где я использую TypScript 2.0. Я установил локально в своем VS версии 2.0 и изменил также тег для версии машинописного текста в моем проекте VS. Локально против сборки отлично работает. В моем CD трубопровода на Visual Studio Team Services с vnext сборки Теперь построить не удается с этим:Visual Studio Team Services build Ошибка машинописного текста

2016-11-05T16:10:22.0371090Z C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\a\1\s\src\Emersy\tsconfig.json" 
2016-11-05T16:10:22.7095466Z ##[error]VSTSC(0,0): Error TS5023: Build: Unknown compiler option 'strictNullChecks'. 

Похоже, что сервер сборки использует typesript версии 1.8 это возможно?

ответ

20

Машинопись 2,0 не доступен в Hosted сборки агента. Но вместо этого вы можете использовать пакет Microsoft.TypeScript.MSBuild, после чего вы можете создать свой проект на Hosted Agent с помощью машинописного текста 2.0.

  1. Добавить/Установить Microsoft.TypeScript.MSBuild package в свой проект
  2. Редактировать ваш файл проекта (.csproj)

    а.) Настройка MSBuild использовать файл реквизита В пакет NuGet в.

    <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.props" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.0.3\build\Microsoft.TypeScript.MSBuild.props')" /> 
    <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />--> 
    

    b.) Настройте MSBuild для использования файла целей пакета NuGet.

    <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.targets" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.targets')" /> 
    <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />--> 
    

    Если проект .Net ядро, добавьте этот код в раздел из .xproj файла

    <TypeScriptToolsVersion>2.0.6</TypeScriptToolsVersion> 
    <TscToolPath>C:\Users\[user account]\.nuget\packages\Microsoft.TypeScript.MSBuild\2.0.6\tools\tsc</TscToolPath> 
    
+0

Знаете ли вы, когда машинописные тексты 2 будут доступны в размещенной сборке? – cpiock

+1

@ cpiock Нет, об этом нет официальной статьи. Вы можете отслеживать обновление этой статьи (https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool) –

+0

Этот ответ сработал для меня, но изначально был запутан, понять, что второй набор шагов был как для редактирования .csproj, потому что строки настолько длинны, что вы не видите, что один из подшаговых шагов должен использовать цели пакета NuGet, а другой - использовать реквизиты пакета. Я представил изменение, чтобы прояснить это. Я вижу, что вы используете этот ответ во многих местах, поэтому, надеюсь, эти разъяснения облегчат другим принятие этого решения. –

2

Я не думаю, что агенты сборки Hosted имеют поддержку TypeScript 2.0 на данный момент.

От VisualStudio.com:

TypeScript 1.4 for Visual Studio 2013 
TypeScript 1.6 for Visual Studio 2013 and Visual Studio 2015 
TypeScript 1.7.5 for Visual Studio 2013 
TypeScript 1.7.6 for Visual Studio 2015 
TypeScript 1.8.6 for Visual Studio 2013 and Visual Studio 2015 
WIX Toolset 3.10 
+0

документация кажется неправильным в части как не все версии, перечисленные там работали. Например. Я пробовал 1.8.6 - не там. 1.4 и 1.6. –

Смежные вопросы