我正在尝试在 .NET 核心中发布我的 MVC 应用程序。我尝试了文件系统,但它丢失了所有与视图相关的文件,并在访问时立即抛出错误。
复制视图文件夹后,它开始工作。我不确定它是否也缺少其他 Web 组件。
我正在尝试在 .NET 核心中发布我的 MVC 应用程序。我尝试了文件系统,但它丢失了所有与视图相关的文件,并在访问时立即抛出错误。
复制视图文件夹后,它开始工作。我不确定它是否也缺少其他 Web 组件。
确保你有Views
你PublishOptions
的 Project.json。
如果您在区域内维护视图,请确保您已添加Areas/**/Views
下面的示例-
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"Views",
"Areas/**/Views",
"appsettings.json",
]
},
看看这是否有帮助。
编辑 your.csproj 文件并将 PreserveCompilationContext 添加为 true 并将 MvcRazorCompileOnPublish 添加为 false
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
然后视图将包含在发布中
区域不能以这种方式工作......所以添加
区域/**/查看次数
它可能不适合你,它不适合我。
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"Views",
"Areas/**/Views",
"appsettings.json",
]
},
如果你用这个替换它,它肯定会工作..
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"Views",
"Areas/**/Views/**/*.cshtml",
"appsettings.json",
]
},
使用 .Net Core MVC 发布 View 文件夹时不应该去,而是应该有一个文件 yourprojectname.Views.dll,检查你是否有这个 dll。
根据您发布给您的位置,您必须针对该操作系统https://docs.microsoft.com/en-us/dotnet/core/rid-catalog。
此外,您应该显示您得到的错误,可能与许多其他事情有关,例如权限。
编辑您的项目并添加
<pre>
MvcRazorCompileOnPublish=false
</pre>
在 xml 文件属性组中
这将强制像往常一样将视图文件发布为 .cshtml 文件。
注意:dll中的预编译视图在运行时更快