在Visual Studio 2013中禁用TypeScript编译

9
我正在运行grunt,并已经设置了一个typescript构建过程来监听文件更改,因此当我保存或构建我的项目时,不需要默认的VS编译我的typescript文件。
我已经在项目属性中取消选中typescript下的“保存时编译”选项,但是ts文件仍然被编译。这个问题的唯一解决方法是将单个TS文件的构建操作设置为“无”,但这仍然会导致一些Typescript文件被编译。是否有任何方法可以在VS2013中解决这个问题?

1
你解决了这个问题吗?我目前也遇到了同样的问题。 - xvdiff
你好xvdiff。如上所述,在我的项目属性中取消选中TypeScript下的“保存时编译”选项,然后将ts文件的构建操作设置为“无”。我知道这有点繁琐,但这是我让它正常工作的唯一方法。 - juju
请确保您没有安装Web Essentials或类似的扩展程序,因为它们可能会在构建时进行编译。 - moefinley
4个回答

15

对于我的VS2015 asp.net core RC2项目(没有.csproj文件),在.xproj(而不是.csproj)文件中添加<TypeScriptCompileBlocked> true </TypeScriptCompileBlocked>可以停止发布项目时发生的typescript编译。由于我向项目中添加了tsconfig.json(没有“compileOnSave”:true),因此在开发期间typescript已经不会在保存时进行编译。我使用gulp来编译我的工作流程。但在我的情况下,需要<TypeScriptCompileBlocked> true </TypeScriptCompileBlocked>来抑制项目发布期间的编译。我正在使用Typescript 1.8.9。 - uonchiu

4

我有同样的问题,我找到的解决方法是在VS项目文件中覆盖TypeScript目标:

<Target Name="PreComputeCompileTypeScript">
  <Message Text="Skipping PreComputeCompileTypeScript" />
</Target>
<Target Name="CompileTypeScript">
  <Message Text="Skipping CompileTypeScript" />
</Target>
<Target Name="GetTypeScriptCopyToOutputDirectoryItems">
  <Message Text="Skipping GetTypeScriptCopyToOutputDirectoryItems" />
</Target>

2
@Christopher Mott的答案也适用于Visual Studio 2013,至少适用于Update 5和TypeScript Tools for Microsoft Visual Studio 2013 1.8.5.0。为确保,可以验证VS TypeScript工具链是否“理解”该标志:
打开预定项目的.csproj文件,并注意它从某个位置导入TypeScript目标: $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets
通常映射到:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\\TypeScript\Microsoft.TypeScript.targets
检查该文件并查找在某些中定义(为false)的TypeScriptCompileBlocked。如果存在,则已排序。返回.csproj文件并在导入TypeScript目标的位置之后添加以下内容:
<!-- Disable TypeScript compilation from within VS, leave that to external tools -->
<PropertyGroup>
  <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
</PropertyGroup>

-3

将 TypeScript 文件的 Build Action 属性更改为除 TypeScript Compile 之外的其他选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接