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

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

概述我为RC2版本启动了一个新的MVC Web应用程序项目,我试图添加一个类库作为项目引用。 我向我的项目添加了一个简单的类库,并引用它,并在project.json文件中获得以下内容: "frameworks": { "net452": { "dependencies": { "MyClassLibrary": { "target": "project" 我为RC2版本启动了一个新的MVC Web应用程序项目,我试图添加一个类库作为项目引用。

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

"frameworks": {  "net452": {    "dependencIEs": {      "MyClasslibrary": {        "target": "project"      }    }  }},

我可以在任何Controllers和Startup.cs文件中使用这个库,但没有任何麻烦,但是当我从Razor页面尝试使用库时,运行时会收到以下错误:

The name ‘MyClasslibrary’ does not exist in the current context
Output.Writeline(MyClasslibrary.MyStaticclass.someStaticString);

这很奇怪,因为当我编辑剃须刀页面时,我正在获得类库的智能感知,我找不到任何表示你不能从这里使用项目引用的东西。

我认为这是很难让这个运行在RC1下的“包文件夹”在类库项目,但这让我陷入困境。

解决方法 问题页面上发布了一个解决方法(cred to pranavkm and patrikwl)
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);    };});
总结

以上是内存溢出为你收集整理的Razor页面在运行时无法在ASP.NET Core RC2中看到引用的类库全部内容,希望文章能够帮你解决Razor页面在运行时无法在ASP.NET Core RC2中看到引用的类库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1248345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存