diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets
index 6cc82f2db7..53f35032d2 100644
--- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets
+++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets
@@ -57,6 +57,10 @@
AfterTargets="ComputeRefAssembliesToPublish"
Condition="'$(MvcRazorCompileOnPublish)'=='true'">
+
+ <_MvcRazorOutputPdbFullPath>$([System.IO.Path]::ChangeExtension('$(_MvcRazorOutputFullPath)', '.pdb'))
+
+
$([System.IO.Path]::GetFileName('$(_MvcRazorOutputFullPath)'))
+
+
+ $([System.IO.Path]::GetFileName('$(_MvcRazorOutputPdbFullPath)'))
+
diff --git a/test/FunctionalTests/ViewCompilationOptionsTest.cs b/test/FunctionalTests/ViewCompilationOptionsTest.cs
index 555f6304f0..632aec8459 100644
--- a/test/FunctionalTests/ViewCompilationOptionsTest.cs
+++ b/test/FunctionalTests/ViewCompilationOptionsTest.cs
@@ -52,6 +52,20 @@ namespace FunctionalTests
}
}
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_PublishesPdbsToOutputDirectory(RuntimeFlavor flavor)
+ {
+ // Arrange
+ using (var deployment = await Fixture.CreateDeploymentAsync(flavor))
+ {
+ var pdbPath = Path.Combine(deployment.DeploymentResult.ContentRoot, Fixture.ApplicationName + ".PrecompiledViews.pdb");
+
+ // Act & Assert
+ Assert.True(File.Exists(pdbPath), $"PDB at {pdbPath} was not found.");
+ }
+ }
+
public class TestFixture : ApplicationTestFixture
{
public TestFixture()