在同一从属程序集的版本之间发现冲突

Luk*_*uke 5 c# asp.net-mvc conflict reference

我在尝试使用解决方案解决此问题时遇到了真正的麻烦。我将解决方案分为三个项目,我认为这是问题的一部分。

我使用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:
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

C:\ Program Files(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>
Run Code Online (Sandbox Code Playgroud)

Mrc*_*ief 4

您可以打开packages.config并编辑版本以确保它们相同。完成此操作后,Nuget 将在下一个构建中使用这些版本。那么您可能不需要重定向。

此外,类似的系统引用System.Web.Mvc并不总是通过 nuget 包添加。如果您使用 VS 模板创建项目,它们可能会指向您的程序文件(或安装 VS/ASP.Net MVC 的任何位置)。在这种情况下,请删除这些引用并通过 Nuget 包管理器添加它们。