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


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

  • 相关阅读:
    loj#6433. 「PKUSC2018」最大前缀和(状压dp)
    PKUWC2019游记
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/wangqilong/p/10088370.html
Copyright © 2011-2022 走看看