【问题标题】:Disable MSBuild TypeScript Compile禁用 MSBuild TypeScript 编译
【发布时间】:2017-07-14 19:02:18
【问题描述】:

对于诸如 ASP.NET MVC5 之类的 Visual Studio 项目,如何在构建/调试时禁用 TypeScript 文件的编译?

我目前将 tsconfig.json compileOnSavebuildOnSave 设置为 false。是否需要在项目.csproj 中添加某些内容以确保它不会被编译?

在调试 ASP.NET MVC5 项目时,它会编译所有 .ts 文件。

感谢您提供的任何帮助。

【问题讨论】:

    标签: asp.net visual-studio typescript msbuild


    【解决方案1】:

    将属性<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> 添加到您的csproj 文件中的PropertyGroup(我将它添加到配置标签下)。这应该会禁用所有基于 msbuild 的 TS 编译。

    启用此设置后,您不需要 tsconfig.json 设置 compileOnSave/buildOnSave。

    如果您使用的是旧版本的 Visual Studio(我曾隐含地考虑过 VS 2017 或 xproj 与 2015),则该属性可能是 <TypeScriptEnabled>false</TypeScriptEnabled>

    【讨论】:

    • 当然也可以放在csproj.user文件中。如果不想打扰团队成员。
    • 为了完整起见,这里是提到这一点的文档的链接。它在最底部。 typescriptlang.org/docs/handbook/…
    • 为什么微软没有在 Visual Studio 的选项或项目的属性中添加复选框???为什么一定要手动编辑proj文件???
    • 我还必须将 typescript 文件属性中的构建操作从 Typescript File 更改为 None 以防止 vs2017 编译我的文件。
    • 这也可以通过设置相同的参数在 msbuild 命令行上禁用:"/p:TypeScriptCompileBlocked=True"
    【解决方案2】:

    对于 Visual Studio 2015,在 PropertyGroup 下添加以下行对我有帮助。

    <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
    

    【讨论】:

      【解决方案3】:

      我遇到了这个问题,测试了此处发布的所有内容,但均未成功,

      但是在添加了这个之后,事情就奏效了:

      <TypeScriptToolsVersion>3.9</TypeScriptToolsVersion>
      

      似乎我使用的版本无论设置如何都可以编译。

      【讨论】:

        【解决方案4】:

        其他解决方案都不适合我,这个导致项目加载错误(VS 2019 - 16.9.4)

        <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>  // doesn't work for me
        

        做同样事情的另一种方法(尽管开销很小)是从编译索引中删除所有 TS。

        <TypeScriptCompile Remove="*" />
        

        我使用它来避免编译节点模块,如下所示:

        <TypeScriptCompile Remove="node_modules\**" />
        

        【讨论】:

        • 在 VS 16.9.4 中将 &lt;TypeScriptCompile Remove="*" /&gt; 添加到 csproj 的属性组会得到 error : The attribute "Remove" in element &lt;TypeScriptCompile&gt; is unrecognized.
        • TypeScriptCompile 应该用在 ItemGroup 元素中。
        【解决方案5】:

        我已经配置了所有这些,但仍然没有解决问题 (在视觉工作室 2019 中)。 我还添加了这个:

         <TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
        

        并重新启动视觉工作室。之后,它开始为我工作。

        【讨论】:

        • 这对我也有用。不过足以重新加载项目。
        【解决方案6】:

        下一种方法对我有用(.NET 6、VS2022、ASP.NET Core + Angular 项目)。 将此设置添加到您的 *.csproj 文件中:

        <PropertyGroup>
                <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
        </PropertyGroup>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-06
          • 1970-01-01
          • 2021-08-10
          • 2023-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多