diff --git a/src/DefaultBuilder/ref/Microsoft.AspNetCore.netcoreapp3.0.cs b/src/DefaultBuilder/ref/Microsoft.AspNetCore.netcoreapp3.0.cs index e5a76886a4..1737054dc0 100644 --- a/src/DefaultBuilder/ref/Microsoft.AspNetCore.netcoreapp3.0.cs +++ b/src/DefaultBuilder/ref/Microsoft.AspNetCore.netcoreapp3.0.cs @@ -3,10 +3,6 @@ namespace Microsoft.AspNetCore { - public static partial class StaticWebAssetsWebHostBuilderExtensions - { - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStaticWebAssets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { throw null; } - } public static partial class WebHost { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder() { throw null; } diff --git a/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj b/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj index 76a27b9a71..d49d64e17c 100644 --- a/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj +++ b/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj @@ -1,4 +1,4 @@ - + netcoreapp3.0 diff --git a/src/DefaultBuilder/src/Properties/AssemblyInfo.cs b/src/DefaultBuilder/src/Properties/AssemblyInfo.cs deleted file mode 100644 index 97ac339e54..0000000000 --- a/src/DefaultBuilder/src/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +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.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] diff --git a/src/DefaultBuilder/src/WebHost.cs b/src/DefaultBuilder/src/WebHost.cs index 5e315dc5d1..a360c89e7f 100644 --- a/src/DefaultBuilder/src/WebHost.cs +++ b/src/DefaultBuilder/src/WebHost.cs @@ -7,6 +7,7 @@ using System.Reflection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.HostFiltering; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Hosting.StaticWebAssets; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Routing; diff --git a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/Microsoft.AspNetCore.Tests.csproj b/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/Microsoft.AspNetCore.Tests.csproj index 6a1ff8c07d..06f55e13d9 100644 --- a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/Microsoft.AspNetCore.Tests.csproj +++ b/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/Microsoft.AspNetCore.Tests.csproj @@ -1,4 +1,4 @@ - + netcoreapp3.0 @@ -7,7 +7,6 @@ - diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj index cd908445ed..40455060c2 100644 --- a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj +++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj @@ -13,6 +13,7 @@ + diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp3.0.cs b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp3.0.cs index cbeec0f51c..afa9dffb52 100644 --- a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp3.0.cs +++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp3.0.cs @@ -1,6 +1,13 @@ // 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. +namespace Microsoft.AspNetCore +{ + public static partial class StaticWebAssetsWebHostBuilderExtensions + { + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStaticWebAssets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { throw null; } + } +} namespace Microsoft.AspNetCore.Hosting { public partial class DelegateStartup : Microsoft.AspNetCore.Hosting.StartupBase @@ -208,6 +215,14 @@ namespace Microsoft.AspNetCore.Hosting.Server.Features public bool PreferHostingUrls { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } } } +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets +{ + public partial class StaticWebAssetsLoader + { + public StaticWebAssetsLoader() { } + public static void UseStaticWebAssets(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment) { } + } +} namespace Microsoft.Extensions.Hosting { public static partial class GenericHostWebHostBuilderExtensions diff --git a/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj b/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj index c1aac9be61..a90dbfb943 100644 --- a/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj +++ b/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj @@ -24,6 +24,7 @@ + diff --git a/src/DefaultBuilder/src/StaticWebAssetsFileProvider.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs similarity index 98% rename from src/DefaultBuilder/src/StaticWebAssetsFileProvider.cs rename to src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs index 99919f1a1c..9db5c7b611 100644 --- a/src/DefaultBuilder/src/StaticWebAssetsFileProvider.cs +++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Primitives; -namespace Microsoft.AspNetCore +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets { // A file provider used for serving static web assets from referenced projects and packages during development. // The file provider maps folders from referenced projects and packages and prepends a prefix to their relative diff --git a/src/DefaultBuilder/src/StaticWebAssetsLoader.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsLoader.cs similarity index 77% rename from src/DefaultBuilder/src/StaticWebAssetsLoader.cs rename to src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsLoader.cs index 05ee714f0c..116c9b0cae 100644 --- a/src/DefaultBuilder/src/StaticWebAssetsLoader.cs +++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsLoader.cs @@ -9,13 +9,20 @@ using System.Reflection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.FileProviders; -namespace Microsoft.AspNetCore +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets { - internal class StaticWebAssetsLoader + /// + /// Loader for static web assets + /// + public class StaticWebAssetsLoader { internal const string StaticWebAssetsManifestName = "Microsoft.AspNetCore.StaticWebAssets.xml"; - internal static void UseStaticWebAssets(IWebHostEnvironment environment) + /// + /// Configure the to use static web assets. + /// + /// + public static void UseStaticWebAssets(IWebHostEnvironment environment) { using (var manifest = ResolveManifest(environment)) { @@ -49,24 +56,10 @@ namespace Microsoft.AspNetCore internal static Stream ResolveManifest(IWebHostEnvironment environment) { - // We plan to remove the embedded file resolution code path in - // a future preview. - Assembly assembly = null; try { - assembly = Assembly.Load(environment.ApplicationName); - } - catch (Exception) - { - } - if (assembly != null && assembly.GetManifestResourceNames().Any(a => a == StaticWebAssetsManifestName)) - { - return assembly.GetManifestResourceStream(StaticWebAssetsManifestName); - } - else - { - // Fallback to physical file as we plan to use a file on disk instead of the embedded resource. + var assembly = Assembly.Load(environment.ApplicationName); var filePath = Path.Combine(Path.GetDirectoryName(GetAssemblyLocation(assembly)), $"{environment.ApplicationName}.StaticWebAssets.xml"); if (File.Exists(filePath)) { @@ -80,6 +73,10 @@ namespace Microsoft.AspNetCore return null; } } + catch + { + return null; + } } internal static string GetAssemblyLocation(Assembly assembly) diff --git a/src/DefaultBuilder/src/StaticWebAssetsReader.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsReader.cs similarity index 98% rename from src/DefaultBuilder/src/StaticWebAssetsReader.cs rename to src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsReader.cs index 82ec626945..7a804c93a9 100644 --- a/src/DefaultBuilder/src/StaticWebAssetsReader.cs +++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsReader.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; using System.IO; using System.Xml.Linq; -namespace Microsoft.AspNetCore +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets { internal static class StaticWebAssetsReader { diff --git a/src/DefaultBuilder/src/StaticWebAssetsWebHostBuilderExtensions.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsWebHostBuilderExtensions.cs similarity index 95% rename from src/DefaultBuilder/src/StaticWebAssetsWebHostBuilderExtensions.cs rename to src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsWebHostBuilderExtensions.cs index 8a754df151..056ed8d32b 100644 --- a/src/DefaultBuilder/src/StaticWebAssetsWebHostBuilderExtensions.cs +++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsWebHostBuilderExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Hosting.StaticWebAssets; namespace Microsoft.AspNetCore { diff --git a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.StaticWebAssets.xml b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.StaticWebAssets.xml new file mode 100644 index 0000000000..f10b7c1a1d --- /dev/null +++ b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.StaticWebAssets.xml @@ -0,0 +1,3 @@ + + + diff --git a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj index 10635b2859..520134a335 100644 --- a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj +++ b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj @@ -5,8 +5,9 @@ - + + diff --git a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsFileProviderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs similarity index 96% rename from src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsFileProviderTests.cs rename to src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs index f0066ea305..dd52fced46 100644 --- a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsFileProviderTests.cs +++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs @@ -6,7 +6,7 @@ using System.IO; using System.Runtime.InteropServices; using Xunit; -namespace Microsoft.AspNetCore.Tests +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets { public class StaticWebAssetsFileProviderTests { @@ -63,7 +63,7 @@ namespace Microsoft.AspNetCore.Tests Path.GetDirectoryName(new Uri(typeof(StaticWebAssetsFileProviderTests).Assembly.CodeBase).LocalPath)); // Act - var file = provider.GetFileInfo("/_CONTENT/Microsoft.AspNetCore.TestHost.StaticWebAssets.xml"); + var file = provider.GetFileInfo("/_CONTENT/Microsoft.AspNetCore.Hosting.StaticWebAssets.xml"); // Assert Assert.Equal(expectedResult, file.Exists); diff --git a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsLoaderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsLoaderTests.cs similarity index 77% rename from src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsLoaderTests.cs rename to src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsLoaderTests.cs index bed656a259..989ea4300e 100644 --- a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsLoaderTests.cs +++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsLoaderTests.cs @@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Hosting.Internal; using Microsoft.Extensions.FileProviders; using Xunit; -namespace Microsoft.AspNetCore.Tests +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets { public class StaticWebAssetsLoaderTests { @@ -58,27 +58,6 @@ namespace Microsoft.AspNetCore.Tests Assert.Equal(originalRoot, environment.WebRootFileProvider); } - [Fact] - public void ResolveManifest_FindsEmbeddedManifestProvider() - { - // Arrange - var expectedManifest = @" - - -"; - var originalRoot = new NullFileProvider(); - var environment = new HostingEnvironment() - { - ApplicationName = typeof(StaticWebAssetsReaderTests).Assembly.GetName().Name - }; - - // Act - var manifest = StaticWebAssetsLoader.ResolveManifest(environment); - - // Assert - Assert.Equal(expectedManifest, new StreamReader(manifest).ReadToEnd()); - } - [Fact] public void ResolveManifest_ManifestFromFile() { @@ -90,7 +69,7 @@ namespace Microsoft.AspNetCore.Tests var environment = new HostingEnvironment() { - ApplicationName = "Microsoft.AspNetCore.TestHost" + ApplicationName = "Microsoft.AspNetCore.Hosting" }; // Act diff --git a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsReaderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsReaderTests.cs similarity index 98% rename from src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsReaderTests.cs rename to src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsReaderTests.cs index 1adffad46c..81562a9618 100644 --- a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/StaticWebAssets/StaticWebAssetsReaderTests.cs +++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsReaderTests.cs @@ -8,7 +8,7 @@ using System.Text; using System.Xml; using Xunit; -namespace Microsoft.AspNetCore.Tests +namespace Microsoft.AspNetCore.Hosting.StaticWebAssets { public class StaticWebAssetsReaderTests {