diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/GetDefaultStaticWebAssetsBasePath.cs b/src/Razor/Microsoft.NET.Sdk.Razor/src/GetDefaultStaticWebAssetsBasePath.cs
deleted file mode 100644
index f39f1a789e..0000000000
--- a/src/Razor/Microsoft.NET.Sdk.Razor/src/GetDefaultStaticWebAssetsBasePath.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-
-namespace Microsoft.AspNetCore.Razor.Tasks
-{
- public class GetDefaultStaticWebAssetsBasePath : Task
- {
- [Required]
- public string BasePath { get; set; }
-
- [Output]
- public string SafeBasePath { get; set; }
-
- public override bool Execute()
- {
- if (string.IsNullOrWhiteSpace(BasePath))
- {
- Log.LogError($"Base path '{BasePath ?? "(null)"}' must contain non-whitespace characters.");
- return !Log.HasLoggedErrors;
- }
-
- var safeBasePath = BasePath
- .Replace(" ", "")
- .Replace(".", "")
- .ToLowerInvariant();
-
- if (safeBasePath == "")
- {
- Log.LogError($"Base path '{BasePath}' must contain non '.' characters.");
- return !Log.HasLoggedErrors;
- }
- SafeBasePath = safeBasePath;
-
- return !Log.HasLoggedErrors;
- }
- }
-}
\ No newline at end of file
diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.StaticWebAssets.targets b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.StaticWebAssets.targets
index d30d7946ec..e6b23f2802 100644
--- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.StaticWebAssets.targets
+++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.StaticWebAssets.targets
@@ -32,11 +32,6 @@ Copyright (c) .NET Foundation. All rights reserved.
AssemblyFile="$(RazorSdkBuildTasksAssembly)"
Condition="'$(RazorSdkBuildTasksAssembly)' != ''" />
-
-
-
-
-
-
-
- _content/$(_StaticWebAssetSafeBasePath)
+ _content/$(PackageId)
diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/test/GetDefaultStaticWebAssetsBasePathTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/test/GetDefaultStaticWebAssetsBasePathTest.cs
deleted file mode 100644
index 9a927fc155..0000000000
--- a/src/Razor/Microsoft.NET.Sdk.Razor/test/GetDefaultStaticWebAssetsBasePathTest.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System.Collections.Generic;
-using Microsoft.Build.Framework;
-using Moq;
-using Xunit;
-
-namespace Microsoft.AspNetCore.Razor.Tasks
-{
- public class GetDefaultStaticWebAssetsBasePathTest
- {
- [Theory]
- [InlineData(null)]
- [InlineData("")]
- [InlineData(" ")]
- [InlineData(" ")]
- public void ReturnsError_WhenBasePath_DoesNotContainNonWhitespaceCharacters(string basePath)
- {
- // Arrange
- var expectedError = $"Base path '{basePath ?? "(null)"}' must contain non-whitespace characters.";
-
- var errorMessages = new List();
- var buildEngine = new Mock();
- buildEngine.Setup(e => e.LogErrorEvent(It.IsAny()))
- .Callback(args => errorMessages.Add(args.Message));
-
- var task = new GetDefaultStaticWebAssetsBasePath
- {
- BuildEngine = buildEngine.Object,
- BasePath = basePath
- };
-
- // Act
- var result = task.Execute();
-
- // Assert
- Assert.False(result);
- var message = Assert.Single(errorMessages);
- Assert.Equal(expectedError, message);
- }
-
- [Theory]
- [InlineData(".")]
- [InlineData("..")]
- [InlineData(". ")]
- [InlineData(" .")]
- [InlineData(" . ")]
- [InlineData(". .")]
- public void ReturnsError_WhenSafeBasePath_MapsToTheEmptyString(string basePath)
- {
- // Arrange
- var expectedError = $"Base path '{basePath}' must contain non '.' characters.";
-
- var errorMessages = new List();
- var buildEngine = new Mock();
- buildEngine.Setup(e => e.LogErrorEvent(It.IsAny()))
- .Callback(args => errorMessages.Add(args.Message));
-
- var task = new GetDefaultStaticWebAssetsBasePath
- {
- BuildEngine = buildEngine.Object,
- BasePath = basePath
- };
-
- // Act
- var result = task.Execute();
-
- // Assert
- Assert.False(result);
- var message = Assert.Single(errorMessages);
- Assert.Equal(expectedError, message);
- }
-
- [Theory]
- [InlineData("Identity", "identity")]
- [InlineData("Microsoft.AspNetCore.Identity", "microsoftaspnetcoreidentity")]
- public void ReturnsSafeBasePath_WhenBasePath_ContainsUnsafeCharacters(string basePath, string expectedSafeBasePath)
- {
- // Arrange
- var task = new GetDefaultStaticWebAssetsBasePath
- {
- BuildEngine = Mock.Of(),
- BasePath = basePath
- };
-
- // Act
- var result = task.Execute();
-
- // Assert
- Assert.True(result);
- Assert.Equal(expectedSafeBasePath, task.SafeBasePath);
- }
- }
-}
diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/test/IntegrationTests/StaticWebAssetsIntegrationTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/test/IntegrationTests/StaticWebAssetsIntegrationTest.cs
index 4d96d43b55..0e3497a483 100644
--- a/src/Razor/Microsoft.NET.Sdk.Razor/test/IntegrationTests/StaticWebAssetsIntegrationTest.cs
+++ b/src/Razor/Microsoft.NET.Sdk.Razor/test/IntegrationTests/StaticWebAssetsIntegrationTest.cs
@@ -67,13 +67,13 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.BuildPassed(result);
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary", "js", "project-transitive-dep.js"));
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary", "js", "project-transitive-dep.v4.js"));
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary2", "css", "site.css"));
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary2", "js", "project-direct-dep.js"));
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "packagelibrarydirectdependency", "css", "site.css"));
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "packagelibrarydirectdependency", "js", "pkg-direct-dep.js"));
- Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "packagelibrarytransitivedependency", "js", "pkg-transitive-dep.js"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary", "js", "project-transitive-dep.js"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary", "js", "project-transitive-dep.v4.js"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary2", "css", "site.css"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary2", "js", "project-direct-dep.js"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "PackageLibraryDirectDependency", "css", "site.css"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "PackageLibraryDirectDependency", "js", "pkg-direct-dep.js"));
+ Assert.FileExists(result, PublishOutputPath, Path.Combine("wwwroot", "_content", "PackageLibraryTransitiveDependency", "js", "pkg-transitive-dep.js"));
// Validate that static web assets don't get published as content too on their regular path
Assert.FileDoesNotExist(result, PublishOutputPath, Path.Combine("wwwroot", "js", "project-transitive-dep.js"));
@@ -95,13 +95,13 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.BuildPassed(publish);
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary", "js", "project-transitive-dep.js"));
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary", "js", "project-transitive-dep.v4.js"));
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary2", "css", "site.css"));
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "classlibrary2", "js", "project-direct-dep.js"));
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "packagelibrarydirectdependency", "css", "site.css"));
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "packagelibrarydirectdependency", "js", "pkg-direct-dep.js"));
- Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "packagelibrarytransitivedependency", "js", "pkg-transitive-dep.js"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary", "js", "project-transitive-dep.js"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary", "js", "project-transitive-dep.v4.js"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary2", "css", "site.css"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "ClassLibrary2", "js", "project-direct-dep.js"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "PackageLibraryDirectDependency", "css", "site.css"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "PackageLibraryDirectDependency", "js", "pkg-direct-dep.js"));
+ Assert.FileExists(publish, PublishOutputPath, Path.Combine("wwwroot", "_content", "PackageLibraryTransitiveDependency", "js", "pkg-transitive-dep.js"));
}
@@ -255,10 +255,10 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
};
return $@"
-
-
-
-
+
+
+
+
";
}
}