发现同一依赖程序集的版本之间存在冲突

本文关键字:版本 之间 存在 冲突 程序集 依赖 发现 | 更新日期: 2023-09-27 18:19:40

我在尝试用我的解决方案解决这个问题时遇到了真正的困难。我把我的解决方案分为三个项目,我认为这是问题的一部分。

我使用NUGET安装了这些包,但我不知道如何"更改"版本或使它们一致。

关于这类问题,这里有很多答案,但没有可靠的解决方法?

我试着打开项目csproj文件,如果版本不同,我会编辑它们以包括相同的版本,但我不确定这是否是正确的做法。

我很高兴提供尽可能多的信息来解决它…到目前为止,我所拥有的只是这个错误消息:

Warning   1   Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the application configuration file:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.Razor" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Deployment" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
    </assemblyBinding>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
    </dependentAssembly>
</assemblyBinding>

C: ''程序文件(x86)''MSBuild''12.0''bin''Microsoft.Common.CurrentVersion.targets 1635 5 uQuiz.WebUI

我知道我可以添加"重定向",但这似乎不对,因为这是我刚刚创建的一个新项目,真的。。。

这是我的packages.config文件:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="6.1.1" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="3.2.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Moq" version="4.2.1402.2112" targetFramework="net45" />
  <package id="MySql.Data" version="6.8.3" targetFramework="net45" />
  <package id="MySql.Data.Entities" version="6.8.3.0" targetFramework="net45" />
  <package id="MySql.Web" version="6.8.3" targetFramework="net45" />
  <package id="Ninject" version="3.2.2.0" targetFramework="net45" />
  <package id="Ninject.MVC3" version="3.2.1.0" targetFramework="net45" />
  <package id="Ninject.Web.Common" version="3.2.2.0" targetFramework="net45" />
  <package id="Ninject.Web.Common.WebHost" version="3.2.2.0" targetFramework="net45" />
  <package id="WebActivatorEx" version="2.0.5" targetFramework="net45" />
</packages>

发现同一依赖程序集的版本之间存在冲突

您可以打开packages.config并编辑版本以确保它们相同。一旦你们做到了,Nuget将在下一次构建中使用这些版本。那你可能就不需要重定向了。

此外,像System.Web.Mvc这样的系统引用并不总是通过nuget包添加的。若您使用VS模板创建项目,它们可能指向您的程序文件(或安装VS/ASP.NetMVC的任何位置)。在这种情况下,删除这些引用并通过Nuget Package Manager添加它们。