启动应用程序时无法激活类型'Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine

时间:2018-07-02 16:29:05

标签: c# asp.net-mvc razor asp.net-core

Asp.net核心2.1

Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvc()
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

public void Configure(IApplicationBuilder app)
{
    if (this.HostingEnvironment.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseDatabaseErrorPage();
    app.UseDeveloperExceptionPage();
    app.UseMvc(routes => {
        routes.MapRoute(
            name: "default",
            template: "{controller=GenericController}/{action=Get}");
    });
}

错误消息:

  

InvalidOperationException:无法激活类型   'Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine'。下列   构造函数是模棱两可的:Void   .ctor(Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider,   Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator,   System.Text.Encodings.Web.HtmlEncoder,   Microsoft.Extensions.Options.IOptions 1[Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions], Microsoft.AspNetCore.Razor.Language.RazorProject, Microsoft.Extensions.Logging.ILoggerFactory, System.Diagnostics.DiagnosticSource) Void .ctor(Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator, System.Text.Encodings.Web.HtmlEncoder, Microsoft.Extensions.Options.IOptions 1 [Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions],   Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem,   Microsoft.Extensions.Logging.ILoggerFactory,   System.Diagnostics.DiagnosticSource)

1 个答案:

答案 0 :(得分:1)

听起来像是升级问题。我猜您可能最近从1.x升级了?

我会尝试:

  1. Nuget程序包->确保已安装的唯一与Web相关的程序包是Microsoft.AspNetCore.App和Microsoft.NETCore.App。您可能还会有一些CodeGeneration程序包,这不必担心。版本应在2.1左右。

  2. 确保从本迁移指南中提到的所有内容中清除.csproj:https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/?view=aspnetcore-2.1

  3. 最后的冰雹玛丽正在清除任何.config文件中的所有奇怪内容和/或重新安装Nuget软件包。 (并且在最坏的情况下,请检查所有与非2.1网络相关的DLL的引用)