繁体   English   中英

在Visual Studio 2019中的发布中未编译某些Razor视图

[英]Some Razor Views are not Being Compiled on Publish in Visual Studio 2019

我有一个复杂的解决方案,其中有两个ASP.NET Core 2.2项目以及它们都共享的另一个项目。 共享项目包含四个Razor视图,我在预构建期间将它们XCOPY导入其他项目。

所有这些都很好用,但是当我发布到IIS时,这四个视图没有被编译到视图程序集中,而只是作为cshtml文件发布。 不幸的是,这导致我有很多空白页,因为这些Razor视图恰好是表单和表格模板...

有谁知道我可以解决这个问题并强制将视图与项目视图的其余部分一起编译?

更新1

目前,我正在尝试构建一个Razor类库,但似乎无法弄清楚如何正确使用它。

更新2

我放弃了RCL,它似乎不适用于普通的MVC项目。

我将构建前命令移至一个手动运行的独立批处理文件,以避免复制构建前文件。 它没有帮助,视图仍然被忽略以进行编译并以cshtml文件的形式发布。 所有剃刀文件都标记为Build Action = Content,所以我不明白为什么这四个文件被忽略。

更新3

我重新审视了RCL,并使其能够与普通MVC应用程序一起使用。 它在本地可以正常工作,但是当我发布为“发布到IIS”时,cshtml文件仍在被复制,编译后的视图被忽略。 我和RCL之前完全一样。 我该怎么做才能使其停止发布cshtml文件?

我偶然发现了AspNetCore资源库上的一个问题,事实证明这是一个工具问题。 不幸的是,即使它可能是一个有害的问题,它在优先级列表中似乎也很低。

无论如何,问题的操作给了我一个主意,那就是删除包含已发布的cshtml文件的文件夹,然后将apppool回收到以重新发现已编译的视图。

由于我是通过FTP发布的,因此发布期间我什么也做不了。 因此,我改为使用PowerShell脚本每分钟检查一次存在问题的文件夹。 如果找到该文件夹​​,则将其删除并回收apppool。

我还摆脱了RCL,回到了最初的预构建XCOPY方式。 目前它可以工作,但是如果修复了工具以避免这种变通办法,那就更好了(当然!)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM