2016-08-27 57 views
15

我有一個Visual Studio 2015 ASP.Net核心項目,其中包含打字稿文件的文件夾。如何在.Net Core項目中禁用TypeScript編譯?

我的問題是如何防止VS試圖編譯TypeScript文件?我不希望他們編譯,保存或構建。

我已經嘗試添加下面的項目設置,但它似乎沒有任何影響。

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

目前VS拋出一個錯誤,tsc.exe exited with code 1,但說的,我不希望TS編譯器在所有運行。

我可以禁用VS使用的typescript.targets,但這不實際,因爲我需要它用於其他項目。

回答

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> 

編輯: @Chopin在評論中指出,這和其他打字稿官方文檔MSBuild相關選項是here

+2

謝謝,對我的作品的asp.net核心.xproj文件。 – STO

+5

[這裏](https://www.typescriptlang.org/docs/handbook/compiler-options-in-msbuild.html#typescriptcompileblocked)是這個和其他Typescript MSBuild相關選項的官方文檔。 – Chopin

+0

它的工作原理。我發現令人討厭的是,Asp.net核心的新1.1.1版本引入了一些Typescript目標,它們不適用於VS 2015,但僅適用於VS 2017。通過添加此屬性組,所有作品,特別是因爲我不使用打字稿的一切:-) – 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')" /> 

問候

相關問題