我安装了Visual Studio 2017社区版.我加载了我的项目,它有一个asmx文件.当我编译项目时,我得到一些打字稿错误:
> TS1005 ';' expected
> TS1146 Declaration expected
> etc.
当我双击错误时,它会显示asmx文件,该文件有一行,如下所示:
<%@ WebService Language="C#" CodeBehind="AjaxCalls.asmx.cs" Class="Nova.AjaxCalls" %>
为什么打字稿会给我一个关于这一行的错误?这根本与打字稿无关. Visual Studio是否向我显示错误所在位置的错误文件?
更新:
我找到了解决问题的方法.我添加了一个名为Microsoft.CSharp的项目的引用.这解决了这个问题.如果该引用已存在,则尝试将其删除并重新添加.显然它与IntelliSense有关.
最佳答案 将已安装的typescript nuget软件包从1.8升级到2.4解决了它.
重要的是要注意,保存打字稿文件VS2017使用计算机上安装的打字稿版本(默认2.4与VS2017)
但是你的代码在点击“build”时可能会使用旧版本的打字稿.与点击ctrl s时相比,或只是查看IDE中的错误.
这是因为typescript作为nuget包(例如v1.8),添加了msbuild在构建时用于编译打字稿的目标.
但这不是VS2017 IDE用于显示错误消息的内容,它使用的是PC上安装的最新版本.
版本之间的这种不匹配可能是导致问题的原因.显示错误但没有失败ctrl s compile / msbuild build.
尝试安装/卸载typescript nuget包,并检查pc上本地安装的版本,以及项目本身是否具有相应版本的nuget包.