“WebPageBase”在未引用的程序集中定义。必须添加对程序集“System.Web.WebPages, Version=1.0.0.0,Culture=neutral....."的引用...

本文介绍了解决.NET框架中出现的CS0012错误的方法,包括修改配置文件中的程序集版本、添加正确的程序集引用及确保项目根目录包含所需程序集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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

转载于:https://www.cnblogs.com/wangqilong/p/10088370.html

以下是我现在的web.config <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=301879 --> <configuration> <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="PostUserID" value="Allgo" /> <add key="PostPassword" value="Allgo2024" /> <!-- Allgo Database Connection Configuration --> <add key="SeverIP" value="47.250.46.2,1433" /> <add key="Database" value="VMSDB" /> <add key="UserId" value="sa" /> <add key="PWD" value="Allgo@2020" /> <!-- Common Parameters Configuration --> <add key="TimeOutValue" value="10" /> <add key="DateFormat" value="M/d/yyyy" /> <add key="DateTimeFormat" value="M/d/yyyy HH:mm:ss.fff" /> <add key="TimeFormat" value="HH:mm:ss" /> </appSettings> <system.web> <compilation targetFramework="4.7.2" /> <httpRuntime targetFramework="4.7.2" /> </system.web> <system.webServer> <handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHandler" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" /> <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Web.Infrastructure" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.2.9.0" newVersion="5.2.9.0" /> </dependentAssembly> </assemblyBinding> </runtime> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers> </system.codedom> </configuration> <!--ProjectGuid: 75F8D488-D85A-488A-AFEB-2E93D5646800-->
最新发布
06-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值