1

我正在使用 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 错误都会在错误列表中报告两次:

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

我试过了:

  1. 为 VS 重新安装/卸载 TypeScript 工具(不会改变任何东西)
  2. 重新创建tsconfig.json文件。
  3. 切换到没有错误的模式tsconfig.json并确保启用了错误发射。
  4. 禁用/启用 ReSharper
  5. 卸载各种其他扩展
  6. 创建一个新的项目和解决方案。该错误发生在所有项目中。

我发现该问题的唯一解决方案是从.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 会引发以下有用的消息:

并有助于将该行再次添加到.csproj文件中。起初一切正常,但Build:在我重新启动 Visual Studio 后错误又回来了。

编辑:更好的解决方法

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

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

这“欺骗” VS 相信该行已经存在,因此不会再次添加它。但是,仍然存在一些问题,例如仅当您打开包含错误的文件时才会出现错误,而不是在构建时出现。

4

0 回答 0