问题描述
这通常是一个非常简单的问题,因为错误很明显,但由于某种原因我不是这种情况。
基本上,我们有几个拆分项目,并且nuget软件包已安装在共享项目中,其余网站都引用了它们。相反,我们在web.config文件中引用它们,并在构建时将它们放在bin文件夹中。
在我当前的问题中,我们引用的是抽象3.1.5.0,但现在它抱怨它想要3.1.0.0
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.5.0" newVersion="3.1.5.0" />
</dependentAssembly>
我尝试了以下方法。
- 实际上安装了nuget软件包(v3.1.5),但收到相同的错误
- 在项目文件中添加了以下内容
<PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>
有趣的是,当我安装v3.1.0时,出现一个错误,说它正在寻找3.1.5。 除此项目外,其他项目也都可以正常工作
解决方法
格式错误的web.config导致了此问题。这可能是在合并期间发生的。
我有一个部分,在dependentAssembly标记内有2个引用,一旦我将它们分开,删除了bin和obj文件夹,我就使它再次工作。
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.5.1.0" newVersion="6.5.1.0"/>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.ApplicationInsights" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.14.0.17971" newVersion="2.14.0.17971"/>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>