无法加载文件或程序集'Microsoft.SqlServer.Types甚至使用复制本地

时间:2015-05-26 09:02:50

标签: c# reference

我在我的网络应用程序上有一个内部报告,当我浏览到它时,本地按预期显示。我使用rdlcxsd标准apsx网页来呈现报告。

我现在已部署到我的登台服务器,当我尝试浏览显示我收到的报告的页面时:

An unexpected error occurred in Report Processing.
Could not load file or assembly 'Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

在本地,我通过浏览到

添加了对Microsoft.SqlServer.Types的引用
  

C:\的Windows \组件\ GAC_MSIL \ Microsoft.SqlServer.Types \ 11.0.0.0__89845dcd8080cc91

我已将其设置为Copy Local并且可以在登台服务器上的bin文件夹中看到.dll,但是我仍然收到错误消息。

出于兴趣,我从本地计算机复制了.dll,并将其ftp到登台服务器并进入bin文件夹。然后它暂时工作,直到我做了另一次提交,擦除bin文件夹并返回错误。

就像临时服务器操作系统上Microsoft.SqlServer.Types的版本已经过时了?

这里发生了什么?

6 个答案:

答案 0 :(得分:12)

如果您确定dll位于bin文件夹中,它可能正在寻找one of its dependencies

您是否尝试删除引用并添加以下NuGet包,而不是从GAC引用?

https://www.nuget.org/packages/Microsoft.SqlServer.Types/

答案 1 :(得分:10)

对我来说同样的问题,但问题是app.config中的绑定重定向尚未更新到新版本。通常更新nuget包会自动执行,但是这个nuget包在引用的项目中。简单修复:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings />
  <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
        <!-- <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" /> -->
        <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

答案 2 :(得分:1)

遇到了同样的问题,即在升级Visual Studio和Sql Server实例后出现的问题。

重新安装 SQLSysClrtypes.msi ReportViewer.msi 软件包后,问题已经解决,可以下载here

希望它可以帮助别人。

答案 3 :(得分:0)

通过使用以下代码,我无法在新工作站上编译我的程序

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
    </runtime>

问题?微软默认提供的SQL Express服务器在此期间从2017年更改为2019年,我从没注意到,所以必须 newVersion 设置为 newVersion =“ 15.0.0.0”

答案 4 :(得分:0)

我复制了文件

<块引用>

My_Solution_Dir)\packages\Microsoft.SqlServer.Types.14.0.314.76\lib\net40\Microsoft.SqlServer.Types.dll

进入“/bin”目录。 我的问题解决了。

答案 5 :(得分:-1)

我遇到了同样的问题,安装nuget包后,从中复制Microsoft.SqlServer.Types.dll C:\ WINDOWS \装配\ GAC_MSIL \ Microsoft.SqlServer.Types 到我的主机Web服务器中我的Web应用程序的BIN文件夹。