.net core AspnetCore Razor 视图失败并出现 CompilationFailedException

2024-04-09

当我尝试查看我的 Razor 页面时,我得到以下信息

fail: Microsoft.AspNetCore.Server.Kestrel[13]
  Connection id "0HLFVN3H0G8MT", Request id "0HLFVN3H0G8MT:00000001": An    unhandled exception was thrown by the application.
Microsoft.AspNetCore.Mvc.Razor.Compilation.CompilationFailedException: One or more compilation failures occurred:
jhhodq42.4nm(4,41): error CS0234: The type or namespace name 'Razor' does not exist in the namespace 'Microsoft.AspNetCore' (are you missing an assembly reference?)
jhhodq42.4nm(5,62): error CS0012: The type 'Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

这是一条令人困惑的消息,因为我的包参考如下并包括网络标准

 <ItemGroup>   
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />      
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.1.2" />      
    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.1" />      
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.1" />      
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />      
    <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="2.1.1" />      
    <PackageReference Include="NETStandard.Library" Version="2.0.3" />      
    <PackageReference Include="Newtonsoft.json" Version="11.0.2" />      
  </ItemGroup>

我的目标是 .netcore 2.1

我的startup.cs是

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

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
                          ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole();
        loggerFactory.AddDebug();

        app.UseMvc();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }

我已反复清除和恢复包缓存,并在 VS2017 和 dotnetcli 下复制了此内容,非常感谢任何指针。我目前最好的猜测是存在相互冲突的依赖关系,但我对 .netcore 仍然陌生,并且不确定如何调试,感谢任何帮助


an issue https://github.com/dotnet/standard/issues/542官方存储库对这个主题有很长的讨论。在撰写本文时,该问题仍然悬而未决,但似乎有几种潜在的解决方案可供您尝试。然而,导致此问题的原因似乎有多种(目前尚未明确定义),因此我鼓励您全部尝试。我将在此处包含其中一些项目,因此这不是仅链接的答案,但我认为完整阅读该问题是明智的。

总结潜在的解决方案

  • 引用 web.config 中的程序集(因为您已明确标记 Kestrel,这可能不适用,但无论如何都要尝试)

<system.web> <compilation debug="true" targetFramework="4.7.1" > <assemblies> <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/> </assemblies> </compilation> <httpRuntime targetFramework="4.7.1" /> </system.web>

Note:

在 IIS 或 IIS Express 中托管应用程序时需要 web.config 文件。 web.config 中的设置启用ASP.NET 核心模块 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?view=aspnetcore-2.1启动应用程序并配置其他 IIS 设置和模块。如果 web.config 文件不存在并且项目文件包含<Project Sdk="Microsoft.NET.Sdk.Web">,发布项目会在发布的输出(发布文件夹)中创建一个 web.config 文件。

  • 将以下内容添加到您的.csproj.

<ItemGroup> <Reference Include="netstandard" /> </ItemGroup>

  • 更新 Visual Studio 和工具,并尝试创建新项目

从你提出问题的方式来看,我假设你的项目是全新的,并且创建一个新项目是一种选择。

  • Change 全局.json https://learn.microsoft.com/en-us/dotnet/core/tools/global-json到目标版本2.1.2dotnet SDK 的,而不是2.0.3.

  • 安装最新版本的SDK

  • There are a number of other solutions in that thread [ 1 ] https://github.com/dotnet/standard/issues/542#issuecomment-387265650 [ 2 ] https://github.com/dotnet/standard/issues/542#issuecomment-387600285 [ 3 ] https://github.com/dotnet/standard/issues/542#issuecomment-389349783

希望那里的东西能为您解决问题。

编辑:我注意到你已经打了两次电话app.UseMvc()。我怀疑它有什么作用,因为我想象这些调用只是设置状态,但没有必要调用它两次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net core AspnetCore Razor 视图失败并出现 CompilationFailedException 的相关文章

  • 使用 C++ 拆分“[常规设置]”格式的节字符串

    我是 C 新手 我想读取包含部分和键值对的 ini 文件 根据部分 我想读取相应键的值 首先 我想阅读方括号内的部分 请帮忙 谢谢 对于真正的 INI 文件解析 我强烈建议iniparser库 http ndevilla free fr i
  • 如何在线程创建和退出时调用函数?

    include
  • 如何启动异步任务对象

    我想开始收集Task同时处理对象并等待所有对象完成 下面的代码显示了我想要的行为 public class Program class TaskTest private Task createPauseTask int ms works w
  • Dotnet“新”命令不适用于 Framework 4.5?

    我正在尝试使用 dotnet 创建 4 5 框架类库项目new命令如下 dotnet new classlib lang C f net45 o TestProject 错误 无效参数 f 网络45 net45 不是 f 框架 的有效值 如
  • 在 DataGridView 中隐藏行非常慢

    我在 Winforms 应用程序中有一个 DataGridView 大约有 1000 行 未绑定 和 50 列 隐藏一列需要整整 2 秒 当我想隐藏大约一半的行时 这就成为一个问题 private void ShowRows string
  • 操作/Lambda 表达式内存管理问题

    我将一个操作存储在局部变量中 然后在该局部变量超出范围后使用 使用前是否有被清理的危险 这是一个例子 public List GetMaps Action
  • 宏可以按参数数量重载吗?

    如何this https stackoverflow com q 9183993 153285工作 如何实现 C99 C 11 可变参数宏以仅根据为其提供多少个参数来扩展到不同的事物 编辑 请参阅末尾以获得现成的解决方案 要获得重载的宏 首
  • 将 Python 控制台集成到 GUI C++ 应用程序中

    I m going to add a python console widget into a C GUI below some other controls 许多类将暴露给 python 代码 包括一些对 GUI 的访问 也许我会考虑 P
  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • 在 C++ 中使用表达式模板进行符号微分

    如何在 C 中使用表达式模板实现符号微分 一般来说 您需要一种表示符号的方法 即编码的表达式模板 例如3 x x 42 以及一个可以计算导数的元函数 希望您对 C 中的元编程足够熟悉 知道这意味着什么和需要什么 但可以给您一个想法 This
  • .NET core BackgroundService 不会作为守护进程正常关闭

    我正在开发 NET Core 3 1 后台服务 将其作为守护进程安装在 Debian AWS EC2 实例上 正常关闭守护进程以停止正在运行的任务并完成许多要处理的任务 发送一些事件等 非常重要 基本实现如下所示 using Microso
  • 捕获另一个进程未处理的异常

    我想知道我是否可以捕获我开始使用 Process Start 的另一个进程抛出的未处理的异常 我知道我可以用这个捕获标准错误link http social msdn microsoft com Forums en US csharpgen
  • 如何强制用户仅使用“new”创建从我派生的类的对象?

    为了实现引用计数 我们使用IUnknown http msdn microsoft com en us library ms680509 VS 85 aspx类接口和智能指针模板类 该接口具有所有引用计数方法的实现 包括Release vo
  • 使用宏计算源文件行数?

    是否可以使用 C C 预处理器将源文件中的行数计算为宏或某种编译时可用值 例如 我可以更换吗MAGIC1 MAGIC2 and MAGIC3在下面 并在使用时以某种方式获取值 4MAGIC3 MAGIC1 can be placed whe
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • EWS - 给予预约,获取预约的所有者副本

    在 EWS 中进行预约后 是否可以获得所有者的副本 例如 如果我登录为user1 我有user1创建的约会的副本user2 我有冒充权 我要编辑user2预约的副本 我怎样才能获得user2 s copy 您可以使用 PidLidClean
  • 如何使用 xamarin 表单提示用户进行地理定位

    我正在 Xamarin Forms 应用程序中开发一个应用程序 需要请求地理位置权限 如果获得许可 它需要从设备获取地理位置数据 然后将地理位置坐标放入 Forecast io URL 我正在使用 James 的 Geolocator 插件
  • 修改代码以从 Windows 中的 PE 可执行文件检索双重签名信息?

    我已经挣扎了一段时间想要修改这段代码示例 https support microsoft com en us help 323809 how to get information from authenticode signed execu
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐