由于TypeScript错误,无法构建解决方案,但noEmitOnError为false

时间:2016-09-18 09:18:11

标签: c# typescript visual-studio-2015 tsconfig

我正在使用ReSharper 2016.2在Visual Studio 2015中使用React和TypeScript处理ASP.NET 5 MVC 6 Web应用程序。我使用的tsconfig.json看起来像这样:

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": false,
    "removeComments": false,
    "experimentalDecorators": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5",
    "jsx": "react"

  },
    "exclude": [
        "node_modules",
        "wwwroot",
        "typings/index.d.ts",
        "typings/index",
        "jspm_packages"
    ],
    "compileOnSave": true
}

如您所见,noEmitOnError是错误的。但是,安装Update 3后,如果出现任何键入错误,Visual Studio将不再允许我构建解决方案。每个TS错误在错误列表中报告两次:

http://image.prntscr.com/image/9fa7b31678164f3c97fa609d377b8641.png

第一个错误,没有错误代码,会阻止构建解决方案。

我试过了:

  1. 重新安装/卸载VS的TypeScript工具(不做任何改动)
  2. 重新创建tsconfig.json文件。
  3. 切换到没有tsconfig.json的模式,并确保启用错误发射。
  4. 禁用/启用ReSharper
  5. 卸载各种其他扩展程序
  6. 创建新项目和解决方案。所有项目都会出错。
  7. 我发现问题的唯一解决方案是从.csproj文件中删除以下行:

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
    

    执行此操作后,TypeScript工具仍能正常工作(存在一些小问题),以Build:开头的错误消失。

    问题是在对.ts文件进行某些操作后,Visual Studio会发出以下有用信息:

    http://image.prntscr.com/image/1ab1c57b26e3436aad2ed68f0f381fd7.png

    然后再次将该行添加到.csproj文件中。起初一切都还可以,但重新启动Visual Studio后会出现Build:错误。

    编辑:更好的解决方法

    好的,更好的解决方法是用以下内容替换坏线:

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="False And Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
    

    这个&#39;技巧&#39; VS相信该线已经存在,因此它不会再次添加它。但是,仍然存在一些问题,例如只有在打开包含错误的文件而不是构建时才会出现错误。

0 个答案:

没有答案