I am wondering if it is possible to copy the source code of an ASP.NET Razor Pages website to a Windows web server and for it to run without it needing to be published/compi
Is this possible and any guidance or links on how to do it?
PS. I'm sure this is not good practice, but would still like an answer
There's a way to allow deploy "uncompiled" *.cshtml
. Assuming you're using ASP.NET Core 3.1:
First of all, add a package reference to Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
:
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.*" />
Change your services to allow Runtime Compilation:
services.AddRazorPages().AddRazorRuntimeCompilation();
Configure a custom Task to copy the source code to publish dir in your *.csproj
file:
<ItemGroup>
<ViewFiles Include="$(ProjectDir)\Pages\**\*.cshtml" />
</ItemGroup>
<Target Name="CopyViewFilesAfterPublish" AfterTargets="Publish">
<Copy SourceFiles="@(ViewFiles)"
DestinationFolder="$(PublishDir)\Pages\%(RecursiveDir)"
/>
</Target>
I publish a RazorPage WebApp and host it on IIS
. And then we can change the Pages/**/*.cshtml
views dynamically: