Visual Studio 2017 已知问题 Q&A

已知问题

 



以下是有关此版本中的已知问题和可用解决方法的说明。M姐会给大家进行详细的解答

  • 安装问题

  • 编辑器和 IDE 问题

  • NuGet 问题

  • 实时单元测试问题

  • 测试工具问题

  • 轻量级解决方案加载问题

  • Web 工具已知问题

  • .NET Core 工具问题

  • “打开文件夹”问题

  • 扩展性问题

  • Application Insights 问题

  • 团队资源管理器问题

  • 托管的工作负载开发问题

  • 其他问题


安装问题

 

Windows 10 SDK 安装失败,返回代码为 -2147023293


问题:

在某些情况下,Windows SDK 安装可能会失败,并返回代码 -2147023293。 


安装日志 dd_setup__errors.log 会显示如下类似错误:包 'Win10SDK_10.0.14393.795,version=10.0.14393.79501' 安装失败。 (详细信息)返回代码:-2147023293 返回代码详情:安装时发生严重错误。 请注意,确切的包名称取决于已选择安装的 Windows 10 SDK。


解决方法:

导致此问题的原因可能有多个。 若要解决该问题,请尝试以下步骤:


  1. 独立于 Visual Studio 安装 Windows 10 SDK。 可从 Windows 开发人员中心下载 Windows 10 SDK。


  2. 在低于 Windows 10 的 Windows 版本上进行安装时,某些情况下,安装失败可能是由于缺少通用 C 运行时所导致。 对于 Windows 10 1507 运行时和 Windows 10 1511 运行时,可分别使用 KB2999226 和 KB3118401 进行安装。


有关详细信息,另请参阅 Visual Studio 开发人员社区门户。


编辑器和 IDE 问题

 

XML 文件不支持 EditorConfig

问题:

编辑 XML 文件时,未应用 .editorconfig 中定义的编码样式约定。


解决方法:

目前没有解决方法。

尚不支持 EditorConfig insert_final_newline 属性和 trim_trailing_whitespace 属性



问题:

.editorconfig 文件中定义的 insert_final_newline 属性和 trim_trailing_whitespace 属性不起作用。


解决方法:

目前没有解决方法。


JavaScript IntelliSense 停止运行

问题:

打开 JavaScript 代码超过 25Mb 的项目时,将显示错误“已对项目 禁用语言服务,因为它包含大量 .js 文件。 请考虑使用 'tsconfig.json' 文件的 'exclude' 部分排除文件。”


解决方法:

使用如下代码向项目根添加 tsconfig.json


 {      "compilerOptions": {          "allowJs": true,            // These settings apply to .js files as well as .ts files          "noEmit":  true             // Do not compile the JS (or TS) files in this project on build      },      "exclude": [          "node_modules",             // Don't include any JavaScript found under "node_modules" or "bower_components"          "bower_components"      ]  }


Add additional folders with JavaScript code libraries. Another common one is Scripts/Office/1 if you're using office-js.


TypeScript 在 ASP.NET Core 项目中无法识别

问题:

ASP.NET Core 项目中的 TypeScript 文件不具有任何 IntelliSense 且当前未在生成中编译。


解决方法:

向项目根添加一个空的 tsconfig.json 文件。


NuGet 问题

 

当有多个项目引用解决方案中的另一项目时,NuGet 还原可能会失败

问题:

如果解决方案中对同一项目的项目引用的大小写或路径不同,则 NuGet 还原可能会不起作用。 NuGet#4574


解决方法:

将所有项目引用的大小写和相对路径更新为均相同。


使用包管理器控制台时,“Enter”键可能不起作用。

问题:

有时无法在包管理器控制台中使用 Enter 键。 如果看到此内容,请在修补程序上签出进程,并提供有关重现步骤的其他任何有用信息。 NuGet#4204 NuGet#4570


解决方法:

打开该解决方案之前,重启 Visual Studio 并打开 PMC。 或者,请尝试删除 project.lock.json 然后再还原。



在 .NET Core 项目中,所用包具有带无效签名的程序集时,可能会出现无限还原循环。

问题:

有时,所用包具有带无效签名的程序集或包版本设置有“DateTime”贴标时,会导致包自动还原无限循环运行。 NuGet#4542


解决方法:

目前没有解决方法。


将无法使用 Nuget 包管理器查看、添加或更新 DotNetCLITools

问题:

NuGet 包管理器不显示,且不允许添加/更新 DotNetCLITools。 NuGet#4256


解决方法:

必须在项目文件中手动编辑 DotNetCLIToolReferences。


如果对项目设置 PackageId 属性,则 NuGet 包还原会失败

问题:

对于 .NET Core 项目,Visual Studio 中的 NuGet 还原不遵从项目的 PackageId 属性。 NuGet#4586


解决方法:

使用命令行运行还原。


项目不包含 'obj' 文件夹时,包还原可能失败

问题:

'obj' 文件夹被删除后 Visual Studio 无法还原 PackageReferences。 NuGet#4528


解决方法:

手动创建 'obj' 文件夹后应可正常进行还原。


在控制台中使用 Update-Package 手动更新包可能会失败

问题:

在控制台中手动使用 Update-Package 对刚刚转换的 PackageReferences 项目仅适用一次。 NuGet#4431


解决方法:

目前没有解决方法。


对目标框架版本重定目标可能会导致 Intellisense 不完整

问题:

在 Visual Studio 中对目标框架版本重定目标可能会导致 Intellisense 不完整。 将 PackageReferences 用作包管理器格式时可能出现这种情况。 NuGet#4216


解决方法:

手动进行还原。


面向 .NET461 的项目引用面向 .NETStandard 的另一项目时 msbuild /t:restore 出现失败

问题:

面向 .NET461 且基于 PackageReference 的项目引用另一个基于 PackageReference 但面向 .NETStandard 的项目时,msbuild /t:restore 失败。 NuGet#4532


解决方法:

目前没有解决方法。


实时单元测试问题

 

实时单元测试不适用于 .NET Core 项目

问题:

.NET Core 项目不支持实时单元测试。


解决方法:

目前没有解决方法。


Web 工具已知问题

 

运行时 MVC4 项目不连接到 SQL Server LocalDB

问题:

在 Visual Studio 中运行 MVC4 项目时,如果使用 SQL Server Express LocalDB 2012,则通过应用程序访问数据库可能会失败。 


失败的原因是由于 MVC4 项目默认依赖于 SQL Server Express LocalDB 2012,而其未与 Visual Studio 2017 一并安装。


解决方法:

升级项目以使用 SQL Server Express LocalDB 2016,或者在计算机上手动下载并安装 SQL Server Express LocalDB 2012。


.NET Core 工具问题

 

有关 .NET Core 和 ASP.NET Core 工具的当前问题列表,请参阅 GitHub 页面。

GitHub地址:

https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md


“打开文件夹”问题

 

编辑 launch.vs.json 或 tasks.vs.json 时 IntelliSense 不可用

问题:

编辑 launch.vs.json 或 tasks.vs.json 文件时,IntelliSense 不可用。


解决方法:

安装“ASP.NET 和 Web 开发”工作负载。


C# 重构可能会生成不一致的结果

问题:

在文件夹模式下,重构 C# 或 VB 代码可能会生成不一致的结果。


解决方法:

在解决方案模式下加载 C# 或 VB 项目。


在文件夹模式下 F10 无法启动调试器

问题:

在文件夹模式下热键 F10 无法启动调试器。


解决方法:

使用 F5 或 F11,并在应用程序入口点设置一个断点。


对 launch.vs.json 的未保存编辑可能会丢失

问题:

从上下文菜单选择“调试和启动设置”时,对 launch.vs.json 的未保存编辑将丢失。


解决方法:

从上下文菜单选择“调试和启动设置”之前请保存对文件所作的任何更改。


重载已经在文件夹模式下编辑的项目可能会失败,并出现一个对话框

问题:

如果已在文件夹模式下编辑过一个项目文件,则之后从解决方案模式重载时可能会失败。


解决方法:

尝试再次重载项目。 如果仍然无法加载,请重载解决方案。


测试工具问题

 

未能发现 UWP 项目,且 Visual Studio VS2017 中创建了 UITestMethod

问题:

未能发现 UWP 项目,且 Visual Studio VS2017 中创建了通过 UITestMethod 属性修饰的测试方法。


解决方法:

将 MSTest.TestAdapter NuGet 包升级到最新版本 (1.1.12)。


通过 DeploymentItem 属性修饰测试时,未能从 Visual Studio 中运行测试。

问题:

如果测试项目在 Visual Studio 创建且具有通过 DeploymentItem 属性修饰的测试,则这些项目将无法运行,进而引发 FileNotFound 异常。


解决方法:

还要在 test method\containing 测试类上添加以下 DeploymentItem:[DeploymentItem("Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll")]。 此问题将在即将推出的 MSTest.TestFramework 和 MSTest.TestAdapter 版本中进行修复。


未能从 Visual Studio 中分析测试,出现 MissingMethodException

问题:

未能从 Visual Studio 中分析测试方法,引发 MissingMethodException。


解决方法:

没有针对此问题的解决方法。


轻量级解决方案加载问题

 

启用轻量级解决方案加载后,某些扩展可能会发生意外行为

问题:

启用轻量级解决方案加载后,某些扩展可能会发生意外行为。


解决方法:

禁用轻量级解决方案加载并重载解决方案。


启用轻量级解决方案加载后,无法使用“编辑并继续”

问题:

启用轻量级解决方案加载后,可能无法按预期使用“编辑并继续”。


解决方法:

使用“编辑并继续”之前,请禁用轻量级解决方案加载并重载解决方案。


启用轻量级解决方案加载后,F# 项目不会生成或支持符号导航

问题:

启用轻量级解决方案加载后,F# 项目可能无法正确生成,且符号在“转到”中可能不完全可用。


解决方法:

为包含 F# 项目的解决方案禁用轻量级解决方案加载。


启用轻量级解决方案加载时会复制警告

问题:

在启用轻量级解决方案加载的情况下生成解决方案时,生成所发出的项目文件警告可能会重复出现在错误列表中。


解决方法:

禁用轻量级解决方案加载并重载解决方案。


扩展性问题

 

添加自定义命令或自定义工具窗口时出错

问题:

向包含 XAML 文件的项目尝试添加自定义命令或自定义工具窗口时,可能会导致未能向项目添加自定义命令或工具窗口。 可能会出现包含文本“序列包含多个匹配元素”的错误。


解决方法:

  1. 关闭所有打开的 XAML 文件。


  2. 关闭 Visual Studio。


  3. 启动 Visual Studio 并打开项目。


  4. (在加载 XAML 文件之前)向项目添加自定义命令或自定义工具窗口。


Application Insights 问题

 

右键单击项目时 Application Insights 可扩展提供程序加载失败

问题:

在 Visual Studio 中右键单击项目时 Application Insights 可扩展提供程序加载失败。 


这是因为在加载解决方案后,可扩展提供程序会在后台线程中从 NuGet 加载二进制文件。 


某些可扩展提供程序(如适用于 PHP 和 Azure Service Fabric 的可扩展提供程序)已经安装了,因此它们不存在这个问题。 


Visual Studio 2017 初始版本后不久将通过自动更新对此问题进行修复。


解决方法:

使用管理员权限打开命令提示符,然后根据 Visual Studio 版本运行以下命令:

  • Visual Studio Enterprise

    • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled


  • Visual Studio Professional

    • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled


  • Visual Studio 社区

    • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled


某些 ASP.NET Core 项目无法为页面视图集合添加 Application Insights JavaScript 代码段

问题:

使用不是通过 Visual Studio 2017 创建的 Application Insights 配置的 ASP.NET Core 项目将无法运行。 尝试运行此类应用会出现错误“InvalidOperationException:未注册 'Microsoft.ApplicationInsights.AspNetCore.JavascriptSnippet' 类型的服务。”


解决方法:

使用 Application Insights 配置之后,向文件 Views/Shared/_Layout.cshtml 添加一个 JavaScript 代码段。 有两种解决方法,具体取决于是否要 Application Insights 从应用收集页面视图:

  • 收集页面视图。 向 Program.cs 中的 WebHostBuilder 添加 ".UseApplicationInsights()"。


  • 不收集页面视图。 从 Views/Shared/_Layout.cshtml 删除以下行:

    • @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet

    • @Html.Raw(JavaScriptSnippet.FullScript)


团队资源管理器问题

 

如果存在孤立的 index.lock,则更改索引的 Git 命令可能会失败

问题:

如果存在孤立的 Git index.lock,则执行更改索引的 Git 命令会失败,该问题起初报告为 Git 撤消和取消暂存失败。 


Git 使用此文件来向其他 Git 进程指示,该存储库已锁定要进行编辑。 如果编辑进程崩溃或终止,则 index.lock file 可能会滞后并阻止其他 Git 进程编辑存储库。


解决方法:

出现此问题时,请查看存储库的 .git/ 文件夹,检查是否存在 index.lock 文件。 如果存在,且你当前并未运行活动的 Git 命令,则请删除该文件。


通过 SSH 克隆失败

问题:

在团队资源管理器中通过 SSH 克隆失败。 未来更新中将提供此问题的修补程序。


解决方法:

如要使用 SSH,请从命令行克隆,然后在团队资源管理器中将存储库添加到本地存储库列表。 也可在团队资源管理器中通过 HTTP 克隆,然后在“设置”>“存储库设置”>“远程”中将远程设置为使用 SSH。


在团队资源管理器中取消 Git 命令不起作用

问题:

在团队资源管理器中取消 Git 命令(例如克隆命令)不起作用,相反,仍会完成操作。 此问题不影响其他团队资源管理器操作。


解决方法:

目前没有解决方法。


托管的工作负载开发问题

 

.NET 2.0/3.0/3.5 项目生成具有不正确目标的程序集

问题:

在未首先从各个组件中选择 .NET Framework 3.5 开发工具的情况下,在新计算机上安装 Visual Studio 2017 并生成 .NET 2.0(或 3.0/3.5)项目后,即使项目面向 .NET 2.0,生成后的某些程序集(例如资源)也被标记为 .NET4.0。 


这是因为 Visual Studio 2017 默认不再安装 .NET Framework 3.5 SDK,而由于此 SDK 缺失,生成进程会默认为 .NET 4.X SDK。


解决方法:

.NET 3.5 SDK 现在仅为可选组件,因此如果开发面向 .NET 3.5 产品 (2.0/3.0/3.5),则安装期间仍需从各个组件选项卡中选择“.NET Framework 3.5 开发工具”。


 这会在生成进程期间所使用的计算机上安装所需的 .NET 3.5 SDK。


其他问题

 

在 x86 计算机上无法连接到 (LocalDB)\MSSQLLocalDB

问题:

这是一个间歇性的 localDB 2014 已知问题,出现此问题时在 x86 计算机上无法连接 (LocalDB)\MSSQLLocalDB。


解决方法:

在命令提示符中运行以下命令:


  1. sqllocaldb stop mssqllocaldb。

  2. sqllocaldb delete mssqllocaldb。

  3. sqllocaldb start mssqllocaldb。


无法在 SharePoint 工作流中创建函数断点

问题:

Visual Studio 的“断点”窗格以前允许创建类型为“工作流”的断点。 此功能已被删除。


解决方法:

通过右键单击菜单在“设计器”视图中创建断点。


在工作流设计器中,SharePoint 工作流活动可能无法正确加载

问题:

如果使用工作流和 SharePoint 活动创建新的 SharePoint 外接程序或解决方案项目,在生成项目后,可能会在工作流设计器中看到如下错误:“由于 XAML 中存在的错误,导致无法加载活动”。 


默认情况下,新的 SharePoint 外接程序项目面向 .NET Framework 4.5.2。 为了在工作流中使用 SharePoint 活动,项目必须面向 .NET Framework 4.5。


解决方法:

从解决方案资源管理器中的上下文菜单或通过项目菜单访问项目属性。


在“应用程序”选项卡上,将“目标框架”设置为 .NET Framework 4.5。


使用动态值时,可能无法生成包含工作流的 SharePoint 项目

问题:

可能无法生成包含工作流的 SharePoint 项目,并出现以下错误:“命名空间 'Microsoft' 中不存在类型或命名空间名称 'Activities' (是否缺少程序集引用?)”。


解决方法:

  1. 在解决方案资源管理器中选择文件后,请在解决方案资源管理器中展开工作流节点,并通过按 F7 或通过上下文菜单查看项目中 workflow.xaml 文件的代码。


  2. 将以下引用添加到部分: Microsoft.Activities。


SharePoint 外接程序项目向导可能无法正确检测项目面向的 SharePoint 的版本

问题:

创建 SharePoint 外接程序项目时,新建项目对话框将基于你提供的站点 URL 尝试检测 SharePoint 的正确版本。 


但是,如果还安装了 Visual Studio 2015 或旧版 SharePoint 客户端组件,则新建项目对话框可能会错误地判定项目面向的是 SharePoint 2016 而非 SharePoint Online。


解决方法:

对于新项目,在创建新 SharePoint 外接程序项目时,请确保并验证新项目对话框的最后一页已选择项目所面向的 SharePoint 的正确版本。 


对于现有项目,可以通过执行以下操作更改项目所面向的 SharePoint 的版本:


  1. 从解决方案资源管理器中的上下文菜单或通过项目菜单访问项目属性。


  2. 在 SharePoint 选项卡上,将目标 SharePoint 版本设置为项目所面向的 SharePoint 的正确版本。


Office Web 外接程序项目可能在错误列表中包含警告

问题:

_officeintellisense.js 文件包含对 Office 对象的声明,该对象与 office.d.ts 文件中声明的对象冲突。


解决方法:

这些警告不会影响项目,你可以删除这些警告,删除方式是注释掉 Scripts\Office\ _officeintellisense.js 文件中额外的“var Office”声明或在解决方案资源管理器中使用“从项目排除”上下文菜单从项目中排除此文件。


Visual Studio 生成工具 SKU 的 Web 开发工具工作负载中不包含面向 .NET 的包

问题:

Visual Studio 生成工具 SKU 中的 Web 开发工具工作负载不包含任何面向 .NET 的包。 这意味着 .NET 二进制文件仅可生成为面向 4.6。


解决方法:

从 Microsoft 手动下载面向 .NET 的包并将其安装到生成计算机。


通过通配包含的文件如果位于项目根目录外,将不会显示在解决方案资源管理器中

问题:

对于 .NET Core 和 ASP.NET Core 项目,由通配模式包括的任何文件只有包含在项目根目录下才会显示在解决方案资源管理器中。 


不会显示位于项目根目录之外的任何文件。 打开“显示所有文件”不能解决此问题。 也无法通过“搜索”、“在文件中查找”、“转到”或“转到定义”导航到这些文件。


解决方法:

对于在解决方案资源管理器中显示缺少的文件或导航到这些文件,目前没有已知的解决方法。 但是,生成和调试这些项目应该不会遇到任何问题。 


在大多数情况下,通过手动打开这些文件即可正常编辑它们。 建议暂时使用单独链接的文件来代替外部通配模式。


VS Test Professional 2017 SKU 不具备团队资源管理器,限制了对 Excel-based/SSRS-based reports from TFS Warehouse/Cube 的访问

问题:

VS 团队资源管理器不再随附 VS Test Professional SKU 一并安装,该管理器用于访问 Excel-based/SSRS-based based reports from TFS Warehouse/Cube。 


此问题不会影响到 Microsoft 测试管理器 (MTM) 客户端 – 它将继续工作,不会产生任何已知问题。


解决方法:

在我们推出 VS 团队资源管理器之前,你可安装并使用此处提供的 VS Enterprise 2017 RC 访问团队资源管理器。 


安装 VS Enterprise 2017 RC 将导致 MTM 客户端许可证进入预览版状态,该状态将在 2017 年 7 月前有效,其失效之前将推出 VS 团队资源管理器。 


如果卸载 VS Enterprise 2017 RC,MTM 客户端许可证将在几天后到期。 通过从 Visual Studio 安装程序中修复 VS Test Professional 2017 安装问题,会将 MTM 客户端还原为 RTW 软件状态,进而解决许可证到期问题。


终于都整理完了……M姐手指要断掉了……程序猿们要好好学习哦!!



相关文章:

  • Visual Studio 2017发布会:黄金时代的家族聚会

  • Visual Studio 2017 新功能(上)

  • Visual Studio 2017 新功能(下)

  • Visual Studio 2017正式版离线安装及介绍

  • Visual Studio 20周年软件趋势随想

原文链接:https://www.visualstudio.com/zh-cn/news/releasenotes/vs2017-relnotes


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

内容转载自公众号

微软中国MSDN
微软中国MSDN
了解更多

你可能感兴趣的:(Visual Studio 2017 已知问题 Q&A)