.NET Core 3.1: 引用 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包 后编译出现 xxx must provide a value for configuration 异常


【.NET Core 3.1 】

 .net core 在修改vs里面的view文件,必须要重新编译才能开到修改效果,这给开发调试带了了一些不便

  • 解决方法
  1.      在nugut中添加  Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 引用
  2.    在Startup.cs文件 添加如下代码
public void ConfigureServices(IServiceCollection services)
{
         services.AddControllersWithViews()
.AddRazorRuntimeCompilation(); services.AddRazorPages(); }

  为了只在开发环境中加载文件监视操作 , 我们可以把  AddRazorRuntimeCompilation 加上配置条件

 

            IMvcBuilder builder = services.AddRazorPages();   
#if DEBUG
            if (Environment.IsDevelopment())
            {                
                builder.AddRazorRuntimeCompilation();
            }
#endif

  

  经过以上配置,大多数的.net core项目正常编译, 并且不需要每次重新编译项目才能开view(cshtml)的修改效果

 

 但是在我的项目了新的编译不通过的异常

严重性	代码	说明	项目	文件	行	禁止显示状态错误		
The project D:\Projects\TengLai.cn\code\XXXX must provide a value for Configuration.
Tenglai.Web.Manage
C:\Users\Jason\.nuget\packages\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets 79

  

 也查找了许多解决  ASP.NET Core 中的 Razor 文件自动编译  的帖子

 大多是是因为.net core版本有.net core 2.x 升级到.net core 3.x,出现 “must provide a value for Configuration”  的提示

 这情况可以这样解决 

在.proj项目文件文件的引用中引用Microsoft.AspNetCore.Razor.Design版本=“ 2.2.0”, 删除该引用(由于Razor.Design现在是AspNetCore库的一部分,根本不需要此引用)就可以解决该问题

 

网络上的方法始终没有解决我项目的编译异常

 

 经我检查我的项目,我的项目不存在者情况,

经过多次排除是因为在依赖包中包含了 Microsoft.AspNetCore.Mvc, Microsoft.AspNetCore.Mvc.Core  

而实际上框架Microsoft.AspNetCore.App下已经包含了者两项

当其他包要关联这两项时会出现冲突,

把依赖包中 Microsoft.AspNetCore.Mvc, Microsoft.AspNetCore.Mvc.Core  删除

项目编译通过

 

 

 

 

 

正在开发一站式企业服务SaaS软件,欢迎互相学习

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM