【发布时间】:2018-12-13 03:19:48
【问题描述】:
起点:Razor Class Library (RCL) tutorial。我可以在 Azure 上发布它,并按预期访问 Razor 页面。
现在,我正在创建另一个 .netstandard 库,名为 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中使用它:
@page
@model RazorClassLib.MyFeature.Pages.Page1Model
<html>
<body>
OK from Razor page lib: @Model.Message
</body>
</html>
在我的机器上启动时,一切正常。
但是,当尝试在 Azure 上发布 Web 应用程序时,Razor 页面预编译失败,并出现以下错误:
Areas\MyFeature\Pages\Page1.cshtml.cs(2,7): Error CS0246: The type or namespace name 'MyCompany' could not be found (are you missing a using directive or an assembly reference?)
问题:
- 为什么发布步骤会尝试从 RCL 重新编译 Razor 页面?
- 为什么无法从我的库中找到命名空间?
我创建了一个包含所有详细信息的小型 GitHub 存储库。
【问题讨论】:
标签: c# razor asp.net-core razor-pages asp.net-core-2.1