发布后的Asp.Net Core 2出现错误“找不到布局”

时间:2018-07-18 10:33:17

标签: layout asp.net-core publishing

发布应用程序后,出现错误: “ InvalidOperationException:找不到布局视图'_Layout'。搜索了以下位置: /Views/Home/_Layout.cshtml /Views/Shared/_Layout.cshtml

Microsoft.AspNetCore.Mvc.Razor.RazorView.GetLayoutPage(ViewContext上下文,字符串executeFilePath,字符串layoutPath)“

该布局位于Views / Shared文件夹中,并且应用程序在本地使用它,因此发布时一定有问题。 不幸的是,在已发布的应用程序中,视图似乎全部包含在一个dll文件中,并且我无法采取任何措施来解决问题。 我的代码中是否有任何东西会使发布者忘记添加_Layout.cshtml视图? 我在_ViewStart.cshtml中引用了布局 那应该适用于所有页面。没有Layout,我的应用程序注定要失败,我不知道该怎么办。

2 个答案:

答案 0 :(得分:2)

好几次尝试后,我发现了为什么发布不包含我的版面页面的原因!太棘手了,令我惊讶。希望这对其他人有帮助! 在布局文件(或任何其他文件)上单击鼠标右键时,将显示带有选项属性的菜单。我打开了布局文件的属性,我注意到那里有一个“高级”选项:“编译操作”。我的选项设置为“无”,这意味着该文件未编译,因此未包含在发布中。我把它放在“内容”上,然后再次尝试发布,一切都顺利,这次是布局文件被编译并包含在发布中。

答案 1 :(得分:0)

在我的情况下,“复制到输出目录”设置为“不复制”,我将其更改为“如果更新则复制”,然后它就可以工作了。 enter image description here