我有一个Visual Studio 2015 ASP.Net Core项目,其中包含一个打字稿文件的文件夹。
我的问题是如何阻止VS尝试编译TypeScript文件?我不希望它们在保存或构建时编译。
我尝试添加下面的项目设置,但似乎没有任何影响。
<PropertyGroup>
<TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
</PropertyGroup>
目前VS正在抛出错误tsc.exe exited with code 1
,但如上所述,我不希望TS编译器完全运行。
我可以禁用VS使用的typescript.targets,但这不实用,因为我需要它用于其他项目。
答案 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')" />
此致