zoukankan      html  css  js  c++  java
  • “WebPageBase”在未引用的程序集中定义。必须添加对程序集“System.Web.WebPages, Version=1.0.0.0,Culture=neutral....."的引用

    报错内容:
    错误 CS0012 类型“WebPageBase”在未引用的程序集中定义。必须添加对程序集“System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”的引用。

    报错截图:
    这里写图片描述
    分析:
    1.首先去项目的配置文件web.config中查看下 引用程序集的版本:

    <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    //版本为2.0.0.0

    这与我们的报错中提示需要版本1.0.0.0版本不和,如果你的web.config中没有针对该程序集其他的配置(具体会在下面分析这种情况第4点),那么出错原因可能是你配置的问题,可以尝试将这里配置版本改为1.0.0.0版本,重新编译看是否成功。

    2.若仍报错,说明你的程序框架中可能没有包含这个版本的程序集,先去程序中的引用中查看程序集:
    这里写图片描述
    这里显示版本为3.0.0.0,而我们刚刚配置的以及报错需要的是1.0.0.0版本,说明这个版本是不能用的,右击该程序集将其移除,然后去添加1.0.0.0版本

    3.添加1.0.0.0版本操作:右击项目中的引用–> 添加引用:
    这里写图片描述
    进入搜索程序集,然后添加:
    这里写图片描述
    到这里再次重新编译下,看是否还报错

    4.如果还报错,恭喜你可能遇到和我一样的问题了。。。
    在上面第1点说配置web.config还会有其他配置,我的项目中除了第1点中的配置,还加了版本兼容的配置,如下:

    <dependentAssembly>
            <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
    </dependentAssembly>
    //这种包括了0.0.0.0到3.0.0.0版本

    所以在第2,3点中版本不一致的情况的在 版本兼容的配置 下都是不用去考虑的。那么项目为什么还会报错,是因为程序框架中没有这个程序集的文件,到你的代码根目录中将框架中查看下 是否含有报错的程序集,我的项目根目录中是空的,添加后编译通过,代码运行正常。

    5.那么怎么去根目录中找呢?
    如果你的情况和我一样,再次去看下报错提示:
    这里写图片描述
    这里说了没有找到这个文件,就是报错程序集文件,去根目录添加就可以了。


    以上是个人经验,没有大量试验过,有错误或不足之处,望指出

  • 相关阅读:
    Java实现 LeetCode 637 二叉树的层平均值(遍历树)
    Java实现 LeetCode 637 二叉树的层平均值(遍历树)
    PHP xml_set_object() 函数
    PHP xml_set_notation_decl_handler() 函数
    PHP xml_set_external_entity_ref_handler() 函数
    PHP xml_set_element_handler() 函数
    PHP xml_set_default_handler() 函数
    最小直列大小 | min-inline-size (Logical Properties)
    最小宽度 | @viewport.min-width (Device Adaptation)
    最小块大小 | min-block-size (Logical Properties)
  • 原文地址:https://www.cnblogs.com/wangqilong/p/10088370.html
Copyright © 2011-2022 走看看