Razor页面在运行时无法在ASP.NET Core RC2中看到引用的类库

马特

我为RC2版本启动了一个新的MVC Web应用程序项目,并且试图添加一个类库作为项目引用。

我向项目添加了一个简单的类库,并对其进行了引用,并在project.json文件中获得了以下内容:

"frameworks": {
  "net452": {
    "dependencies": {
      "MyClassLibrary": {
        "target": "project"
      }
    }
  }
},

我可以在任何Controllers和Startup.cs文件中使用此库,而不会遇到任何麻烦,但是当我尝试从Razor页面使用该库时,在运行时出现以下错误:

名称“ MyClassLibrary”在当前上下文中不存在。Output.WriteLine(MyClassLibrary.MyStaticClass.SomeStaticString);

这很奇怪,因为在编辑Razor页面时我正在获得类库的智能感知,并且找不到任何内容说明无法从此处使用项目引用。

我以为在类库项目中使用“ wrap folder”在RC1下运行它已经很困难了,但这让我很困惑。

邪恶的鸽子

解决方法已发布在问题页面上(信条为pranavkm和patrikwlund)https://github.com/aspnet/Razor/issues/755

显然,您需要使用RazorViewEngineOptions.CompilationCallback显式添加对Razor编译的引用。

将以下内容添加到Startup类中的ConfigureServices方法中:

var myAssemblies = AppDomain.CurrentDomain.GetAssemblies().Select(x => MetadataReference.CreateFromFile(x.Location)).ToList();

services.Configure((RazorViewEngineOptions options) =>
{
    var previous = options.CompilationCallback;
    options.CompilationCallback = (context) =>
    {
        previous?.Invoke(context);

        context.Compilation = context.Compilation.AddReferences(myAssemblies);
    };
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法让ConfigurationBuilder从ASP.NET Core 1.0 RC2的xunit类库中的appsettings.json中读取

无法从 .NET Core 的核心类库中看到 dbContext 类

在ASP.NET Core MVC中在运行时动态绑定模型

如何在运行时在ASP.Net Core中创建URL重写?

如何在运行时更改 asp.net core 中的启动数据?

在ASP.NET Core中在运行时扩展Autofac IoC容器配置

在运行时,Asp.net Core 2.2和Entity Framework Core中的数据库架构不会更改

ASP .Net Core在运行时更改路由

ASP.NET Core RC2中的网址重写

在 ASP .NET Core 中在运行时设置模型绑定表单字段名称

无法在运行时通过IIS托管的ASP.NET Core应用程序设置ODBC源

Asp.net Core RC2未检测到对nuget包的引用

ASP .NET Core Razor页面中的授权

具有Identity和ASP.NET Core RC2的实体框架Core无法在数据库中创建用户

无法在ASP.NET Core RC2中导入Oracle Client

ASP.NET Core RC2身份数据库架构迁移

Asp.net Core 2.0中间件-使用来自appsettings的参数,这些参数在运行时会更改

如何确定是否在运行时启用端点路由 ASP.Net Core

ASP.NET Core MVC - 在运行时绑定到模型

ASP.NET Core依赖项注入:服务在运行时使用Func委托解析

ASP.NET Core依赖注入:在运行时传递参数

在运行时为 ASP.NET Core 缩小动态生成的 JavaScript

ASP.Net Core注册控制器在运行时

NET Framework 4.7.2应用程序可以在运行时加载NET Core 5.0库DLL吗?

集成和单元测试不再在ASP.NET Core 2.1上运行,无法在运行时找到程序集

是否发布了ASP.NET Core RC2?

Moq.netcore无法用于.Net Core RC2

Asp.Net Core 2.2 更改当前用户的数据库运行时间

如何在ASP.NET Core RC2中制作Websocket服务器?