【问题标题】:visual studio express 2012 app.config remapping assemblyvisual studio express 2012 app.config 重新映射程序集
【发布时间】:2013-06-01 20:39:19
【问题描述】:

我不久前将一个项目从 MVC 3 移到了 MVC 4。

当我构建时,我会收到消息

1>  No way to resolve conflict between "System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0
1>  Consider app.config remapping of assembly "System.Web.WebPages ..." from Version "1.0.0.0" to Version "2.0.0.0"  to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Web.WebPages.Razorfrom Version "1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version "2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning.

等等。

我看reference的时候都是后期版本,web.config只指后期版本。当我通过公钥令牌(在 Windows 资源管理器中)搜索整个解决方案目录时,我发现没有引用早期版本的 XML 类型文件。

显然文件的路径不同,但我找不到编译器指向早期 .dll 文件路径的位置。

项目构建并运行良好,但我认为编译器建议这些更改是有原因的。感谢您的帮助。

【问题讨论】:

  • 你有用 nuget 安装的库吗?
  • 是的,多个,并且在更新库后确实出现了构建消息。我对 nuget 不够熟悉,不知道如何找到/解决这个问题
  • 尝试在包管理器控制台中运行 update-package -reinstall。您必须安装 nuget 2.1 才能执行此操作,但它会重新定位您的所有 3rd 方库。在更新到.net 4.5 后几天前在我的项目上做了这个。我收到了相同类型的错误消息。查看此链接以获取更多信息stackoverflow.com/questions/12006991/…

标签: visual-studio-2012 assembly-resolution


【解决方案1】:

您的 nuget 依赖项可能引用了 MVC3 版本。您可以尝试将以下内容放入您的网络配置中以强制使用 MVC4 版本:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
</runtime>

您也可以尝试在Package Manager Console 中运行以下命令

Update-Package -Reinstall

您必须至少拥有 2.1 版的 nuget 才能使用此命令,但如果您更新了 .NET,它将更新您的包并重新定位它们。您可以查看此帖子以获取更多信息。

Retargeting solution from .Net 4.0 to 4.5 - how to retarget the NuGet packages?

【讨论】:

  • 谢谢你 DSlagle - 正要让你发帖,所以我可以接受答案。我猜这很快就会被标记为重复,但我可以看到我的搜索没有找到您的 StackOverflow 链接。
  • 只是旁注,Update-Package -Reinstall 根据您的项目需要很长时间
  • 警告 - 使用此命令使我的大部分引用无效,我不得不再次重新创建解决方案。
【解决方案2】:

我也遇到过这样的问题。我只做了两件事:

  • 将 System.Web.Mvc 和所有依赖项更新到最新版本 (5.2.3)
  • 重建所有解决方案(我确实使用了“Solution -> Clean Solution”,然后是“Solution -> 构建解决方案")

【讨论】:

    【解决方案3】:

    尝试在项目文件中将AutoGenerateBindingRedirects 设置为true

    【讨论】:

      猜你喜欢
      • 2018-01-08
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多