2016-08-27 19 views
15

Tôi có một dự án Visual Studio 2015 ASP.Net Core có chứa một thư mục các tệp bản ghi.Làm thế nào để vô hiệu hóa trình biên dịch TypeScript trong các dự án .Net Core?

Câu hỏi của tôi là làm cách nào để ngăn VS cố gắng biên dịch tệp TypeScript? Tôi không muốn họ biên soạn, hoặc là tiết kiệm hoặc xây dựng.

Tôi đã thử thêm cài đặt dự án bên dưới, nhưng dường như không có bất kỳ tác động nào.

<PropertyGroup> 
    <TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled> 
</PropertyGroup> 

Hiện tại VS đang ném lỗi, tsc.exe exited with code 1, nhưng như đã nêu, tôi không muốn trình biên dịch TS chạy hoàn toàn.

Tôi có thể vô hiệu hóa typescript.targets mà VS sử dụng, nhưng điều đó không thực tế, bởi vì tôi cần nó cho các dự án khác.

Trả lời

31

Tôi đã dành một chút thời gian đào bới xung quanh trong tệp C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets và tôi đã tìm thấy thuộc tính hỗ trợ dường như thực hiện công việc.

Thêm khách sạn này cho dự án, bằng cách chỉnh sửa hồ sơ dự án trực tiếp và thêm nhóm khách sạn này:

<PropertyGroup> 
    <!-- Makes the TypeScript compilation task a no-op --> 
    <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> 
</PropertyGroup> 

EDIT: @Chopin chỉ ra trong các ý kiến ​​rằng doc chính thức cho việc này và nguyên cảo khác Các tùy chọn liên quan đến MSBuild là here.

+2

Cảm ơn, làm việc cho tôi cho file .xproj asp.net lõi. – STO

+5

[Ở đây] (https://www.typescriptlang.org/docs/handbook/compiler-options-in-msbuild.html#typescriptcompileblocked) là tài liệu chính thức cho điều này và các tùy chọn khác liên quan đến MSScript của Typescript. – Chopin

+0

Nó hoạt động. Những gì tôi thấy khó chịu là bản phát hành 1.1.1 mới của lõi Asp.net giới thiệu một số mục tiêu Typecript không hoạt động với VS 2015 nhưng chỉ với VS 2017. Bằng cách thêm nhóm thuộc tính này, tất cả các công trình, đặc biệt là vì tôi không sử dụng Typescript ở tất cả :-) – Raffaeu

0

mẹo này thực sự hoạt động đối với phiên bản mới của MSBuild. Tuy nhiên nếu bạn vẫn còn có phiên bản cũ của MSBUild, trên một máy chủ xây dựng hoặc như vậy. Bạn cũng muốn xóa những dòng này khỏi tệp csproj.

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" /> 

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /> 

Trân

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