2016-11-05 37 views
5

Tôi có một ứng dụng web angular2 mà tôi đang sử dụng Typescript 2.0. Tôi đã cài đặt tại địa phương trong VS của tôi phiên bản 2.0 và thay đổi cũng là thẻ cho phiên bản typescript trong dự án VS của tôi. Tại địa phương vs xây dựng hoạt động tốt. Trong đường dẫn CD của tôi trên Visual Studio Team Services với một phiên bản vnext bây giờ xây dựng không thành công với điều này:Visual Studio Team Services xây dựng các lỗi kiểu số

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

Hình như máy chủ đang sử dụng phiên bản loại 1.9 là điều này có thể?

Trả lời

20

nguyên cảo 2.0 là không có sẵn trong đại lý xây dựng Hosted. Nhưng bạn có thể sử dụng gói Microsoft.TypeScript.MSBuild thay vào đó, sau đó bạn có thể xây dựng dự án của bạn trên Hosted Agent với typescript 2.0.

  1. Add/Cài đặt Microsoft.TypeScript.MSBuild package để dự án của bạn
  2. Chỉnh sửa tập tin dự án của bạn (csproj)

    a.) Cấu hình MSBuild sử dụng đạo cụ tập tin gói của 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.) Định cấu hình MSBuild để sử dụng tệp mục tiêu của gói 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')" />--> 
    

    Nếu đó là dự án Net Core, thêm mã này vào phần của .xproj tập tin

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

bạn có biết khi nào bản ghi 2 sẽ có sẵn trong bản dựng được lưu trữ không? – cpiock

+1

@cpiock Không, không có bài viết chính thức về nó. Bạn có thể theo dõi cập nhật của bài viết này (https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool) –

+0

Câu trả lời này có hiệu quả đối với tôi, nhưng ban đầu đã gây nhầm lẫn khi tôi không hiểu tập các bước thứ hai là cả hai để chỉnh sửa .csproj, bởi vì các dòng này quá dài nên bạn không thấy rằng một bước phụ là sử dụng các mục tiêu của gói NuGet và mục kia là sử dụng các tệp đạo cụ của gói. Tôi đã gửi bản chỉnh sửa để làm rõ điều này. Tôi thấy bạn sử dụng câu trả lời này ở nhiều nơi, vì vậy hy vọng những giải thích này có thể giúp người khác dễ dàng áp dụng bản sửa lỗi này hơn. –

2

Tôi không nghĩ rằng các tác nhân xây dựng được lưu trữ có hỗ trợ cho TypeScript 2.0 tại thời điểm này.

Từ 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

Tài liệu có vẻ sai ở các phần không phải tất cả các phiên bản được liệt kê ở đó đều hoạt động. Ví dụ. Tôi đã thử 1.8.6 - không có ở đó. 1,4 và 1,6 làm việc mặc dù. –

Các vấn đề liên quan