Visual Studio 2015 在安装 Microsoft Dynamics 365 报表创作扩展后停止工作

本文提供了在开始SQL Server Data Tools for Visual Studio 时发生的错误的解决方案。

适用范围:Microsoft Dynamics CRM
原始 KB 编号: 4032777

症状

注意

此处所述的问题已通过 Microsoft Dynamics 365 报表创作扩展版本 8.2.2.248 得到解决。

在以下方案中:

  • 已安装 Visual Studio 2015 SQL Server Data Tools。
  • 安装 Microsoft Dynamics 365 报表创作扩展 (版本 8.2.2.0171)

启动 visual Studio SQL Server Data Tools时,Visual Studio 会关闭并显示以下消息:

“Microsoft Visual Studio 2015 已停止工作。”

Windows 事件查看器中的错误可能如下所示:

应用程序:devenv.exe
说明:进程因未经处理的异常而终止。
异常信息:System.IO.FileNotFoundException
at Microsoft.VisualStudio.Services.Client.AccountManagement.AccountManager.GetAccountProviderCore (System.Guid)
at Microsoft.VisualStudio.Services.Client.AccountManagement.AccountManager+<>c__DisplayClass32_0。<GetAccountProviderAsync>b__0 ()
at System.Threading.Tasks.Task'1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]。InnerInvoke ()
at System.Threading.Tasks.Task.Execute ()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task)

卸载报表创作扩展插件无法解决问题。

原因

出现此问题的原因是报表创作扩展插件设置过程中出现问题。 使用默认安装路径安装报表创作扩展时,会将以下程序集置于 中 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE,替换该位置中已有的任何旧版本文件。

  • Microsoft.IdentityModel.Clients.ActiveDirectory.dll - 文件版本:2.22.x.x
  • Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - 文件版本:2.22.x.x

Visual Studio 尝试加载不存在的旧版文件,因为 devenv.exe.config 文件包含的绑定重定向条目仍指向版本 2.16.0.0。 替换文件时,报表创作扩展安装过程未将绑定重定向更新为指向版本 2.22.0.0。

解决方案

若要解决此问题,请按照以下步骤将 devenv.exe.config 文件中的绑定重定向更改为指向版本 2.22.0.0:

  • 编辑这两个文件,将 bindingRedirect 条目的版本值更改为正确的版本 2.22.0.0:

    • C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE - devenv.exe.config
    • C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies - PreviewProcessingService.exe.config

    注意

    如果使用的安装位置与默认安装位置不同,则需要将这些文件的路径修改为安装 Visual Studio 的位置。
    如果 PreviewProcessingService.exe.config 文件尚未包含 bindingRedirect,则无需添加它。

  • 在两个文件中查找以下部分:

    <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="2.0.0.0-2.16.0.0" newVersion="2.16.0.0" />
    </dependentAssembly>
    <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="2.0.0.0-2.16.0.0" newVersion="2.16.0.0" />
    </dependentAssembly>
    
  • 将以下行从 中更改:

    <bindingRedirect oldVersion="2.0.0.0-2.16.0.0" newVersion="2.16.0.0" />
    收件人:
    <bindingRedirect oldVersion="2.0.0.0- **2.22.0.0**" newVersion="**2.22.0.0**" />

  • 保存文件并重启 Visual Studio。