diff --git a/src/Components/Blazor/Build/src/targets/All.targets b/src/Components/Blazor/Build/src/targets/All.targets
index cff950dae7..6aa60e8227 100644
--- a/src/Components/Blazor/Build/src/targets/All.targets
+++ b/src/Components/Blazor/Build/src/targets/All.targets
@@ -17,6 +17,7 @@
+
@@ -42,17 +43,4 @@
-
-
- $(GetCurrentProjectStaticWebAssetsDependsOn);
- _ClearCurrentStaticWebAssetsForReferenceDiscovery
-
-
-
-
-
-
-
-
-
diff --git a/src/Components/Blazor/Build/src/targets/StaticWebAssets.targets b/src/Components/Blazor/Build/src/targets/StaticWebAssets.targets
new file mode 100644
index 0000000000..02af2eec64
--- /dev/null
+++ b/src/Components/Blazor/Build/src/targets/StaticWebAssets.targets
@@ -0,0 +1,32 @@
+
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ _RemoveBlazorCurrentProjectAssetsFromStaticWebAssets;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StandaloneExternalPublishStaticWebAsset Include="@(_ExternalPublishStaticWebAsset)" Condition="'%(RelativePath)' != ''">
+ $([MSBuild]::MakeRelative('$(MSBuildProjectDirectory)', '$([MSBuild]::NormalizePath('$([System.Text.RegularExpressions.Regex]::Replace('%(RelativePath)','^wwwroot\\?\/?(.*)','$(BlazorPublishDistDir)$1'))'))'))
+
+
+
+
+
+
+
+
+
diff --git a/src/Components/Blazor/Build/test/BuildIntegrationTests/PublishIntegrationTest.cs b/src/Components/Blazor/Build/test/BuildIntegrationTests/PublishIntegrationTest.cs
index 606fb88aba..9748e10963 100644
--- a/src/Components/Blazor/Build/test/BuildIntegrationTests/PublishIntegrationTest.cs
+++ b/src/Components/Blazor/Build/test/BuildIntegrationTests/PublishIntegrationTest.cs
@@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Blazor.Build
public async Task Publish_WithDefaultSettings_Works()
{
// Arrange
- using var project = ProjectDirectory.Create("standalone");
+ using var project = ProjectDirectory.Create("standalone", additionalProjects: new string[] { "razorclasslibrary" });
var result = await MSBuildProcessManager.DotnetMSBuild(project, "Publish");
Assert.BuildPassed(result);
@@ -28,6 +28,10 @@ namespace Microsoft.AspNetCore.Blazor.Build
Assert.FileExists(result, blazorPublishDirectory, "dist", "_framework", "_bin", "standalone.dll");
Assert.FileExists(result, blazorPublishDirectory, "dist", "_framework", "_bin", "Microsoft.Extensions.Logging.Abstractions.dll"); // Verify dependencies are part of the output.
+ // Verify referenced static web assets
+ Assert.FileExists(result, blazorPublishDirectory, "dist", "_content", "RazorClassLibrary", "wwwroot", "exampleJsInterop.js");
+ Assert.FileExists(result, blazorPublishDirectory, "dist", "_content", "RazorClassLibrary", "styles.css");
+
// Verify static assets are in the publish directory
Assert.FileExists(result, blazorPublishDirectory, "dist", "index.html");
@@ -39,7 +43,7 @@ namespace Microsoft.AspNetCore.Blazor.Build
public async Task Publish_WithLinkOnBuildDisabled_Works()
{
// Arrange
- using var project = ProjectDirectory.Create("standalone");
+ using var project = ProjectDirectory.Create("standalone", additionalProjects: new string[] { "razorclasslibrary" });
project.AddProjectFileContent(
@"
false
@@ -62,6 +66,10 @@ namespace Microsoft.AspNetCore.Blazor.Build
// Verify static assets are in the publish directory
Assert.FileExists(result, blazorPublishDirectory, "dist", "index.html");
+ // Verify referenced static web assets
+ Assert.FileExists(result, blazorPublishDirectory, "dist", "_content", "RazorClassLibrary", "wwwroot", "exampleJsInterop.js");
+ Assert.FileExists(result, blazorPublishDirectory, "dist", "_content", "RazorClassLibrary", "styles.css");
+
// Verify web.config
Assert.FileExists(result, publishDirectory, "web.config");
}
diff --git a/src/Components/Blazor/Build/testassets/razorclasslibrary/RazorClassLibrary.csproj b/src/Components/Blazor/Build/testassets/razorclasslibrary/RazorClassLibrary.csproj
new file mode 100644
index 0000000000..94e866815d
--- /dev/null
+++ b/src/Components/Blazor/Build/testassets/razorclasslibrary/RazorClassLibrary.csproj
@@ -0,0 +1,8 @@
+
+
+
+ netstandard2.1
+ 3.0
+
+
+
diff --git a/src/Components/Blazor/Build/testassets/razorclasslibrary/wwwroot/styles.css b/src/Components/Blazor/Build/testassets/razorclasslibrary/wwwroot/styles.css
new file mode 100644
index 0000000000..5f282702bb
--- /dev/null
+++ b/src/Components/Blazor/Build/testassets/razorclasslibrary/wwwroot/styles.css
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/Components/Blazor/Build/testassets/razorclasslibrary/wwwroot/wwwroot/exampleJsInterop.js b/src/Components/Blazor/Build/testassets/razorclasslibrary/wwwroot/wwwroot/exampleJsInterop.js
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/Components/Blazor/Build/testassets/standalone/standalone.csproj b/src/Components/Blazor/Build/testassets/standalone/standalone.csproj
index 60302d4a0c..1b13eb3d53 100644
--- a/src/Components/Blazor/Build/testassets/standalone/standalone.csproj
+++ b/src/Components/Blazor/Build/testassets/standalone/standalone.csproj
@@ -13,4 +13,8 @@
+
+
+
+
diff --git a/src/Components/Blazor/testassets/HostedInAspNet.Client/HostedInAspNet.Client.csproj b/src/Components/Blazor/testassets/HostedInAspNet.Client/HostedInAspNet.Client.csproj
index cb21b79a8c..e27de695c1 100644
--- a/src/Components/Blazor/testassets/HostedInAspNet.Client/HostedInAspNet.Client.csproj
+++ b/src/Components/Blazor/testassets/HostedInAspNet.Client/HostedInAspNet.Client.csproj
@@ -11,17 +11,4 @@
-
-
- $(GetCurrentProjectStaticWebAssetsDependsOn);
- _ClearCurrentStaticWebAssetsForReferenceDiscovery
-
-
-
-
-
-
-
-
-