.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