我想准备所有要通过FTP上传的文件。我试过命令dotnet publish -c Release -o ~/Desktop/toFtp
。不幸的是,视图文件夹未被复制有办法吗?
根据docs:
ASP.NET Core 2.x项目模板默认启用预编译。
这只是意味着没有.cshtml文件等,因为它们被预编译到已发布的输出中,即为您组装。
如果检查已发布的输出,您应该看到类似的内容:
YourMvcProject.PrecompiledViews.dll
现在我只想出一个衬垫(在macOS上测试)。 dotnet publish -c Release -o ~/Desktop/toFtp/ ; cp -r Views/ ~/Desktop/toFtp/Views/
。它现在看起来像.net core 2.0中的一个bug。这不是正确的方式,但现在有效。
根据一些答案,我想将它们结合起来。所以我可以使用dotnet publish -c Release -o ~/Desktop/release/
但也添加到<PropertyGroup>
中的myProject.csproj:<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
所以它会将所有视图预编译到dll文件中。发布它应该可以正常工作。
- 如果要部署Views文件夹:
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>