我安装了 Visual Studio 2017 社区版。我加载了我的项目,它有一个 asmx 文件。当我编译这个项目时,我遇到了一些 typescript 错误:
> TS1005 ';' expected
> TS1146 Declaration expected
> etc.
当我双击错误时,它会显示 asmx 文件,该文件只有一行,如下所示:
<%@ WebService Language="C#" CodeBehind="AjaxCalls.asmx.cs" Class="Nova.AjaxCalls" %>
为什么 typescript 会给我关于这一行的错误?这根本与 typescript 无关。 Visual Studio 是否向我显示错误所在的错误文件?
更新:
我找到了解决问题的方法。我添加了对名为 Microsoft.CSharp 的项目的引用。这解决了这个问题。如果该引用已存在,则尝试将其删除并重新添加。显然它与 IntelliSense 有关。
最佳答案
将已安装的 typescript nuget 包从 1.8 升级到 2.4 为我解决了这个问题。
需要注意的是VS2017在保存typescript文件时使用的是电脑上安装的typescript版本(VS2017默认2.4)
但是您的代码在点击“构建”时可能使用了旧版本的 typescript 。与按 ctrl+s 或仅查看 IDE 中的错误相比。
这是因为 typescript 作为 nuget 包(例如 v1.8)添加了 msbuild 在构建时用于编译 typescript 的目标。
但这不是 VS2017 IDE 用于显示错误消息的方式,它使用安装在 pc 上的最新版本。
版本之间的这种不匹配可能是导致问题的原因。显示错误但未失败 ctrl+s 编译/msbuild 构建。
尝试安装/卸载 typescript nuget 包,查看 pc 本地安装的是哪个版本,项目本身是否有对应版本的 nuget 包。
关于visual-studio - Visual Studio 2017 - 防止 asmx 文件出现 typescript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46961583/