You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装指定版本2.3.12的Nuget包RazorGenerator.Mvc报错如何解决?

问题根因

RazorGenerator.Mvc 2.3.12版本的安装逻辑默认优先检索全局程序集缓存(GAC)中的System.Web.Mvc程序集,你项目中通过Nuget安装的Microsoft.AspNet.Mvc不会自动写入GAC,因此触发找不到程序集的报错。

解决方案

方案1:强制安装后手动配置引用(推荐,无需修改全局环境)

  • 执行带忽略依赖参数的安装命令,跳过安装阶段的程序集校验:
    Install-Package RazorGenerator.Mvc -Version 2.3.12 -IgnoreDependencies
  • 安装完成后手动给项目添加System.Web.Mvc引用:右键项目→选择「添加」→「引用」→浏览到项目packages目录下对应版本Microsoft.AspNet.Mvc包中的System.Web.Mvc.dll,添加到项目引用中。
  • 打开项目根目录下的Web.config文件,在<runtime>节点的<assemblyBinding>子节点下添加绑定重定向规则,将所有版本的System.Web.Mvc指向你项目实际安装的版本,示例规则如下:
<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-[你安装的MVC版本号].0" newVersion="[你安装的MVC版本号].0" />
</dependentAssembly>

请将上述配置中的[你安装的MVC版本号]替换为项目实际安装的Microsoft.AspNet.Mvc对应版本号,例如5.2.9

  • 重新生成项目,验证没有引用报错即可正常使用。

方案2:临时注册System.Web.Mvc到GAC(适合本地开发场景)

  • 找到项目中已安装的System.Web.Mvc.dll路径,默认路径为项目根目录\packages\Microsoft.AspNet.Mvc.[版本号]\lib\net4*\System.Web.Mvc.dll
  • 以管理员身份启动Visual Studio的开发者命令提示符(Developer Command Prompt),执行如下命令将dll注册到全局程序集缓存:
    gacutil /i "System.Web.Mvc.dll的完整本地路径"
  • 注册完成后回到Visual Studio的包管理器控制台,执行原安装命令即可正常安装:
    Install-Package RazorGenerator.Mvc -Version 2.3.12
  • 安装完成后若不需要保留GAC中的System.Web.Mvc,可执行gacutil /u System.Web.Mvc移除全局注册。

内容的提问来源于stack exchange,提问作者Tm Son

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:06:02