我在System.ComponentModel.Annotations v4.5.0中有问题。
更新到此版本后,我的应用由于FileLoadException (Could not load file or assembly 'System.ComponentModel.Annotations, Version=4.2.0.0 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
而崩溃。
此程序包用于目标为netstandard2.0
的库项目中,然后由目标为net461
的Webapi项目使用。
经检查,结果表明该nuget软件包在ref
目标的lib
和netstandard2.0
文件夹中包含不匹配的版本(对于net461
目标的版本匹配)。
ref/netstandard2.0
中用于编译的版本是4.2.0.0
,而运行时使用的lib/netstandard2.0
中的版本是4.2.1.0
,因此出现错误。您可以从NuGet Gallery下载该软件包,并通过检查其内容来发现不匹配。
在同一个nuget软件包中,此版本msimatch是否可以预期,在这种情况下,我将使用绑定重定向,或者这是软件包本身的问题吗?
答案 0 :(得分:1)
您需要在app.config中使用binding redirection来解析版本,
这里是一个例子:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Annotations" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
</dependentAssembly>
</assemblyBinding>