在 NET 6 中部署后我可以在哪里找到我的页面 cshtml

Tam*_*roz 4 web-deployment asp.net-core-mvc .net-6.0

我正在使用 NET 6 在 asp.net mvc 中开发一个网站,当我部署时,我找不到 cshtml 页面,而是找到很多文件夹、dll 和 .exe。

问题是,每次修改一个页面时,我都需要更新所有网站。

有没有办法只将修改后的页面cshtml上线而不部署整个网站?

Jas*_*Pan 6

1.您需要添加Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation包。

2.部署时还需要复制cshtml。

所以我的 .csproj 文件如下:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.2" />
  </ItemGroup>

  <ItemGroup>
    <ViewFiles Include="$(ProjectDir)\Views\**\*.cshtml" />
  </ItemGroup>
  
  <Target Name="CopyViewFilesAfterPublish" AfterTargets="Publish">
    <Copy SourceFiles="@(ViewFiles)"
      DestinationFolder="$(PublishDir)\Views\%(RecursiveDir)"
    />
  </Target>

</Project>
Run Code Online (Sandbox Code Playgroud)

测试结果:

  1. 在发布文件中找到cshtml文件。

在此输入图像描述

  1. 在IIS中测试

在此输入图像描述