【问题标题】:VS 2015 & msbuild suppress typescript errorsVS 2015 & msbuild 抑制打字稿错误
【发布时间】:2018-02-12 16:37:09
【问题描述】:

在我使用的解决方案中,有一个项目大量使用打字稿,我试图让这个项目通过构建以便在其上运行 msbuild..

已经尝试编辑使用 typescript 的项目的 .csproj 文件并添加属性 <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

<PropertyGroup> 元素下,但这没有帮助。 也试过了:<TypeScriptEnabled>false</TypeScriptEnabled> 这也没有帮助。

如何设置 VS2015 忽略 typescript 还有什么我可以添加到“msbuild”命令中让它忽略typescript

这是构建后的错误列表选项卡:

这是构建后的输出选项卡:

【问题讨论】:

  • @zgue,我看到了那个帖子(所有例子都来自那个帖子),但它对我不起作用。你知道为什么吗?

标签: asp.net typescript visual-studio-2015 msbuild


【解决方案1】:

如何将 VS2015 设置为忽略打字稿,以及我可以在“msbuild”命令中添加什么以使其也忽略打字稿?

不确定为什么该帖子中的所有示例都不适用于您,我在 Visual Studio 2015 上测试了 <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> 属性,它工作正常。为了确保您正确操作,我想提供有关此方法的详细信息,您可以查看。

添加节点:

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

进入 .csproj 文件中的第一个 &lt;PropertyGroup&gt;,如下所示:

<PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  <ProductVersion>
  </ProductVersion>
  ....
  <NuGetPackageImportStamp>
  </NuGetPackageImportStamp>
  <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion>
  <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
</PropertyGroup>

保存此设置后,重新加载您的项目,重新构建项目(使用 MSBuild 项目构建输出详细信息),您会在输出窗口中看到构建日志:

TypeScript 编译被跳过,因为 TypeScriptCompileBlocked 属性设置为“true”。

注意:TypeScript tools for Visual Studio的版本是1.8.36.0

更新:

然后我查看了“输出”选项卡,但没有包含的行 文本“打字稿”与它无关的行

您应该将 MSBuild 项目构建输出详细程度更改为详细信息,然后在输出窗口中检查日志:

我想提供另一种抑制打字稿错误的方法:

选择 TypeScript 文件并将其 ContentType 更改为 'Content' 而不是 'TypeScriptCompile',然后语言服务应该不会给你错误。

  <ItemGroup>
    <Content Include="Test.ts" />
  </ItemGroup>

评论更新

如果您想在从 MSBuild 命令执行构建时抑制 TS 错误,可以将属性添加为 /p:TypeScriptCompileBlocked=true:

详细信息:

  1. 打开一个cmd并切换到MSBuild的路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin

  2. 执行命令:msbuild "YourProject.csproj" /p:Platform=x64 /p:TypeScriptCompileBlocked=true

【讨论】:

  • 感谢您的详细解答!完全按照您在此处描述的操作 1) 编辑 csproj 文件并将其添加到 &lt;TypeScriptCompileBlocked&gt;true&lt;/TypeScriptCompileBlocked&gt; 2) 卸载并重新加载项目 3) 构建项目 > 然后我查看了“输出”选项卡,但没有包含包含的行文本“打字稿”与它无关的行。我将在初始帖子中添加它的图像。
  • @E.Meir,我已经更新了我的答案,你可以检查它是否适合你。如果没有。
  • 谢谢!我在“输出”选项卡Unknown output: TypeScript compile is skipped because the TypeScriptCompileBlocked property is set to 'true' 中收到这些消息,我也看到这样的消息:1&gt;Target "CompileTypeScript" skipped, due to false condition; ('$(BuildingProject)' != 'false' AND '@(ConfigFiles)' == '' AND '@(TypeScriptCompile)' != '') was evaluated as ('true' != 'false' AND 'tsconfig.json' == '' AND 'src\dashboard\dashboard.spec.ts;' != '').TypeScriptCompileBlocked 属性覆盖所有其他?
  • @E.Meir,是的,设置属性 true 或将 .ts 文件的构建操作设置为内容后的结果如何?
  • .csproj 文件中,我有几个名为TypeScriptCompile 的标签,你知道我是否将它们更改为Content 是否会产生影响?
猜你喜欢
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 2015-10-28
  • 2017-05-14
相关资源
最近更新 更多