2016-11-05 100 views
5

我有一個angular2 web應用程序,我正在使用Typescript 2.0。我已經在我的VS版本2.0中本地安裝了,並且還更改了VS項目中打字稿版本的標籤。本地vs構建工作正常。在Visual Studio團隊服務我的CD管道與vnext現在構建構建失敗,此:Visual Studio團隊服務構建Typescript錯誤

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是不是在託管生成代理可用。但是您可以使用Microsoft.TypeScript.MSBuild包,然後您可以使用typescript 2.0在Hosted Agent上構建您的項目。

  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工作。 –