zoukankan      html  css  js  c++  java
  • nuget 包引用引发的问题

    在以往项目中,添加引用包,采用了nuget的引入方式,今天进行了代码升级,遇到了一个nuget引用的问题,特此记录下。

    之前项目中集成signalR时,使用nuget的方式引入了相关的signalR包,包引用配置信息如下

    1. 出现黄页

    在另外的代码升级中,同样使用相同的packages.config进行还原,编译通过,运行时呈现了问题,一直出现StackExchange.Redis.StrongName依赖项版本错误的黄页。

    经过对nuget包的依赖项的查看发现,signalR的redis组件的依赖项为

    使用的StackExchange.Redis.StrongName 的版本,最低为1.1.608

    项目中同时使用了Microsoft.Web.RedisSessionStateProvider 2.23,他的依赖版本为

    发现依赖项不同,默认运行时加载的依赖项版本找不到会产生黄页。

    2. 重新安装

    参考nuget依赖项解析地址:https://docs.microsoft.com/zh-cn/nuget/consume-packages/dependency-resolution,发现可以指定依赖项解析规则:最低适用版本、可变版本、选择最近项和等距依赖项。

    随即,重新卸载引用包,重新安装,然而在vs2017,nuget 2.80的版本下,安装选项不存在依赖项解析规则的选择:

    顿时不开心了,重新引用,虽然安装信息显示是采用的最低适用版本,但是运行时仍然显示黄页。

    3. 修改nuget配置

    没有办法,猜测是否nuget的配置是否错误,重新找到C:UsersAdministratorAppDataRoamingNuGet uget.config文件,增加配置

    重新安装应用,依然无法解决。

    4. webconfig的锅?

    在查看官方文档时,返现文档中提到

    猜测是否web.config内存在dll的版本指定导致的,重新检查web.config配置发现指定了配置:

    删掉此处指定的配置,重新运行网页,黄页消失。

    问题产生原因:

    1 在之前引用中引用了高版本的依赖项,nuget自动修改了webconfig的配置

    2 在重新引用时,webconfig不会被重写

    3 添加nuget引用时,未指定安装包的依赖规则

    4 未仔细查看安装包的依赖项版本

    5 最好采用安装包自动依赖项安装,减少分别引入时的版本不匹配的问题

     

  • 相关阅读:
    1014. 福尔摩斯的约会
    1009. 说反话
    1002. 写出这个数
    1031. 查验身份证
    1021. 个位数统计
    1006. 换个格式输出整数
    1058. A+B in Hogwarts
    1027. Colors in Mars
    1019. General Palindromic Number
    Windows 新装进阶操作指南
  • 原文地址:https://www.cnblogs.com/dpwow/p/9629061.html
Copyright © 2011-2022 走看看