我将System.Data.SqlClient V4.4.3用于ASP.NET Core 2.0项目中的所有.NET Standard 2.0类库。我为什么要
无法加载文件或程序集'System.Data.SqlClient,Version = 4.2.0.2,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
将项目与VSTS一起发布到Azure App Service时?当然,它完全适用于我的机器!
这一切都在昨天奏效。但今天我决定将软件包更新为:
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
答案 0 :(得分:16)
不知道这是否与我面临的情况相同。 我通过nuGet添加了System.Data.SqlClient,它运行良好。
答案 1 :(得分:3)
降级为
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
一切都恢复正常!今天失去了4个小时!!!
答案 2 :(得分:1)
我遇到了同样的问题,带有消息的SerializationException:
Unable to find assembly 'Microsoft.Data.SqlClient,
March 3rd 2020 16:36:46Error
Version=1.0.19269.1, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5'
但是dll一切正常,问题是由无效的连接字符串引起的, 我花了几乎几个小时才能弄清楚会发生什么!
答案 3 :(得分:0)
当某些依赖程序集使用相同库的旧版本时会发生这种情况。 要解决此问题,您可以使用assembly redirecting,强制旧库使用更新的版本。
将此文件放在app.config或asp.net
中的web.config中<dependentAssembly>
<assemblyIdentity name="System.Data.SqlClient" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="4.2.0.2" newVersion="4.4.3.0" />
</dependentAssembly>
答案 4 :(得分:0)
今天我遇到了类似的问题,我更新了包括All meta-package到2.0.6在内的一些软件包。我的应用程序然后不会引用上面的错误。经过大量调查后,我做了以下工作,现在看起来似乎有效了。
使用FTP连接到Azure网站,导航到网站 - &gt; wwwroot文件夹。在这里,我有一个名为&#34; refs&#34;的文件夹。另一个名为&#34;运行时&#34;。我删除了这两个文件夹(在进行本地备份后),重新发布了我的应用程序,它运行良好!
不确定为什么会有效,但我认为这可能是有用的,因为有人在遇到类似问题时遇到了这个问题。
答案 5 :(得分:0)
对我来说,解决方案是删除System.Data.SqlClient包并再次安装它。升级包装是不够的。