2016-11-05 80 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工作。 –

相关问题