如何在.Net Core项目中禁用TypeScript编译?

时间:2016-08-27 01:19:23

标签: visual-studio-2015 .net-core asp.net-core-1.0

我有一个Visual Studio 2015 ASP.Net Core项目,其中包含一个打字稿文件的文件夹。

我的问题是如何阻止VS尝试编译TypeScript文件?我不希望它们在保存或构建时编译。

我尝试添加下面的项目设置,但似乎没有任何影响。

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

目前VS正在抛出错误tsc.exe exited with code 1,但如上所述,我不希望TS编译器完全运行。

我可以禁用VS使用的typescript.targets,但这不实用,因为我需要它用于其他项目。

2 个答案:

答案 0 :(得分:49)

我花了一些时间在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>

编辑: @Chopin在评论中指出,这个和其他Typescript MSBuild相关选项的官方文档是here

答案 1 :(得分: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')" />

此致