2016-11-05 5 views
5

Ich habe eine angular2 Webapplikation, wo ich Typescript 2.0 verwende. Ich habe lokal in meinem VS die Version 2.0 installiert und auch das Tag für die Typoskript-Version in meinem VS-Projekt geändert. Lokal gegen Build funktioniert gut. In meiner CD-Pipeline auf Visual Studio Team Service mit einem vNext baut jetzt bauen versagt dies mit:Visual Studio Team Services Build Typescript Fehler

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'. 

Sieht aus wie, dass der Build-Server die typesript Version 1.8 ist dies möglich verwendet?

Antwort

20

Typoskript 2.0 ist in Hosted Build-Agent nicht verfügbar ist. Sie können jedoch stattdessen das Microsoft.TypeScript.MSBuild-Paket verwenden. Anschließend können Sie Ihr Projekt auf Hosted Agent mit Typescript 2.0 erstellen.

  1. Add/Install Microsoft.TypeScript.MSBuild package zu einem Projekt
  2. Bearbeiten Sie Ihre Projektdatei (CSPROJ)

    a.) MSBuild Konfigurieren Sie die NuGet Paket der Requisiten-Datei zu verwenden.

    <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.) Konfigurieren Sie MSBuild für die Verwendung der Zieldatei des NuGet-Pakets.

    <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')" />--> 
    

    Wenn es Net ist Kernprojekt, diesen Code zu Abschnitt .xproj

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

Wissen Sie, wann Typoskript 2 im gehosteten Build verfügbar sein wird? – cpiock

+1

@cpiock Nein, es gibt keinen offiziellen Artikel darüber. Sie können die Aktualisierung dieses Artikels verfolgen (https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool) –

+0

Diese Antwort funktionierte für mich, war aber zunächst verwirrend, als ich es nicht tat Verstehen Sie die zweite Reihe von Schritten waren beide für die Bearbeitung der .csproj, weil die Zeilen so lang sind Sie nicht sehen, dass ein Teilschritt ist die Ziele des NuGet-Pakets zu verwenden und die andere ist, die Requisiten-Dateien des Pakets zu verwenden. Ich habe eine Bearbeitung eingereicht, um dies zu klären. Ich sehe, dass du diese Antwort an vielen Stellen verwendest, daher können diese Klarstellungen hoffentlich anderen die Annahme erleichtern. –

2

Ich glaube nicht, dass die gehosteten Build-Agenten zur Zeit Unterstützung für TypeScript 2.0 haben.

Von 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

Die Dokumentation scheint in Teilen als nicht alle Versionen falsch aufgelistet dort gearbeitet. Z.B. Ich habe 1.8.6 versucht - nicht da. 1.4 und 1.6 funktionierten jedoch. –

Verwandte Themen