剃刀类库:在分页符中引用其他程序集Azure发布

时间:2018-07-04 16:23:45

标签: c# razor asp.net-core razor-pages asp.net-core-2.1

起点:Razor Class Library (RCL) tutorial。我可以在Azure上发布它,并按预期访问Razor页面。

现在,我正在创建另一个.netstandard的{​​{1}}库。它包含一个类:

MyCompany.ClassLibrary1

我在namespace MyCompany.ClassLibrary1 { public class Class1 { public string Message => "This is a test"; } } 类中引用它,如下所示:

Page1Model

最后,为了检查一切是否正常,我在using Microsoft.AspNetCore.Mvc.RazorPages; using MyCompany.ClassLibrary1; namespace RazorClassLib.MyFeature.Pages { public class Page1Model : PageModel { public string Message; public void OnGet() { Message = new Class1().Message; } } } 中使用它:

Page1.cshtml

在我的计算机上启动时,一切正常。

但是,当尝试在Azure上发布Web应用程序时,Razor页面的预编译失败,并出现以下错误:

  

@page @model RazorClassLib.MyFeature.Pages.Page1Model <html> <body> OK from Razor page lib: @Model.Message </body> </html>

问题

  1. 为什么发布步骤尝试从RCL重新编译Razor页面?
  2. 为什么无法从我的图书馆中找到命名空间?

我已经创建了一个包含所有详细信息的小型GitHub存储库。

1 个答案:

答案 0 :(得分:0)

解决方法只是将对正确的Razor SDK的引用添加到RCL项目。由于某种原因,它使用的是旧版本。

修复:添加对Nuget软件包Microsoft.NET.Sdk.Razor版本2.1.1的引用。