2016-08-27 2 views
15

У меня есть проект Visual Studio 2015 ASP.Net Core, содержащий папку файлов машинописных файлов.Как отключить компиляцию TypeScript в проектах .Net Core?

Мой вопрос в том, как я могу предотвратить попытку VS попытаться скомпилировать файлы TypeScript? Я не хочу, чтобы они были скомпилированы либо с сохранением, либо с помощью сборки.

Я попытался добавить проект ниже, но он, похоже, не имеет никакого влияния.

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

В настоящее время VS бросает ошибку, tsc.exe exited with code 1, но, как говорится, я не хочу, чтобы компилятор TS работать на всех.

Я могу отключить типы typescript.targets, которые использует VS, но это непрактично, потому что мне это нужно для других проектов.

ответ

31

Я провел некоторое время в архиве C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets и нашел свойство поддержки, которое, похоже, выполняет эту работу.

Добавить эту недвижимость в проект, путем редактирования файла проекта непосредственно и добавить это свойство группы:

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

EDIT: @Chopin отметил в комментариях, что официальный документ для этого и других машинопись Параметры, связанные с MSBuild, - here.

+2

Спасибо, работает для меня основной asp.net файла .xproj. – STO

+5

[Здесь] (https://www.typescriptlang.org/docs/handbook/compiler-options-in-msbuild.html#typescriptcompileblocked) является официальным документом для этого и других параметров, связанных с Microsoft Word. – Chopin

+0

Это работает. То, что я нашел раздражающим, заключается в том, что новая версия 1.1.1 ядра Asp.net вводит некоторые объекты, которые не работают с VS 2015, но только с VS 2017. Добавляя эту группу свойств, все работает, особенно потому, что я не использую Typcript вообще :-) – Raffaeu

0

Этот трюк действительно работает для новой версии MSBuild. Однако, если у вас все еще есть более старые версии MSBUild, на сервере сборки или около того. Вы также хотите удалить эти строки из файла 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')" /> 

С уважением