diff --git a/NuGetPackageVerifier.json b/NuGetPackageVerifier.json index b153ab1515..9835bcd0c8 100644 --- a/NuGetPackageVerifier.json +++ b/NuGetPackageVerifier.json @@ -1,4 +1,18 @@ { + "adx": { + "rules": [ + "DefaultCompositeRule" + ], + "packages": { + "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation": { + "exclusions": { + "DOC_MISSING": { + "lib/netcoreapp1.1/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.dll": "Not a class library. Docs not required for CLI tools" + } + } + } + } + }, "Default": { "rules": [ "DefaultCompositeRule" diff --git a/makefile.shade b/makefile.shade new file mode 100644 index 0000000000..41bc61d4f3 --- /dev/null +++ b/makefile.shade @@ -0,0 +1,49 @@ +use assembly="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +use assembly="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + +use namespace="System.IO" +use namespace="System.IO.Compression" +use namespace="System.Linq" + +use-standard-lifecycle +k-standard-goals + +#repack-x86 target='compile' if='Directory.Exists("src") && !IsLinux' + @{ + var buildDir= Path.Combine(Directory.GetCurrentDirectory(), "artifacts", "build"); + var projectName = "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation"; + var projectNupkg = Files + .Include(Path.Combine(buildDir, projectName + "*.nupkg")) + .Where(path => !path.EndsWith(".symbols.nupkg", StringComparison.OrdinalIgnoreCase)) + .OrderByDescending(f => f) // On local builds multiple nupkgs are generated. + .First(); + + Log.Info("Repacking Nupkg: " + projectNupkg); + + using (var zipArchive = ZipFile.Open(projectNupkg, ZipArchiveMode.Update)) + { + MoveEntry(zipArchive, "lib/net451/" + projectName + ".exe", "runtimes/win7-x64/lib/net451/" + projectName + ".exe"); + MoveEntry(zipArchive, "lib/net451/" + projectName + "-x86.exe", "runtimes/win7-x86/lib/net451/" + projectName + "-x86.exe"); + zipArchive.CreateEntry("lib/net451/_._"); + } + } + +functions @{ + private static void MoveEntry(ZipArchive archive, string oldPath, string newPath) + { + var oldEntry = archive.GetEntry(oldPath); + if (oldEntry == null) + { + throw new Exception(oldPath + " was not found in package."); + } + + var newEntry = archive.CreateEntry(newPath); + using (var newStream = newEntry.Open()) + using (var oldStream = oldEntry.Open()) + { + oldStream.CopyTo(newStream); + } + + oldEntry.Delete(); + } +} \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/CompilationOptions.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/CompilationOptions.cs index 5e7fc24f43..4adc9b3db7 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/CompilationOptions.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/CompilationOptions.cs @@ -6,7 +6,7 @@ using Microsoft.Extensions.CommandLineUtils; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public class CompilationOptions + internal class CompilationOptions { public static readonly string ConfigureCompilationTypeTemplate = "--configure-compilation-type"; public static readonly string ContentRootTemplate = "--content-root"; diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/DebugHelper.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/DebugHelper.cs index 1999e85041..518b4318e6 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/DebugHelper.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/DebugHelper.cs @@ -8,7 +8,7 @@ using System.Linq; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public static class DebugHelper + internal static class DebugHelper { public static void HandleDebugSwitch(ref string[] args) { diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/MvcServiceProvider.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/MvcServiceProvider.cs index df2c0dbcb9..740fba6f9a 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/MvcServiceProvider.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/MvcServiceProvider.cs @@ -18,7 +18,7 @@ using Microsoft.AspNetCore.Mvc.Razor.Compilation; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public class MvcServiceProvider + internal class MvcServiceProvider { private readonly string _projectPath; private readonly string _contentRoot; diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompilationApplication.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompilationApplication.cs index bd1ac8a803..4ba381b7f2 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompilationApplication.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompilationApplication.cs @@ -9,7 +9,7 @@ using Microsoft.Extensions.CommandLineUtils; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public class PrecompilationApplication : CommandLineApplication + internal class PrecompilationApplication : CommandLineApplication { private readonly Type _callingType; diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompileRunCommand.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompileRunCommand.cs index 09cde85852..617fb5a9a2 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompileRunCommand.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/PrecompileRunCommand.cs @@ -19,7 +19,7 @@ using Microsoft.Extensions.CommandLineUtils; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public class PrecompileRunCommand + internal class PrecompileRunCommand { private static readonly ParallelOptions ParalellOptions = new ParallelOptions { diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/SnkUtils.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/SnkUtils.cs index dfe3edb258..6e06878277 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/SnkUtils.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/SnkUtils.cs @@ -8,7 +8,7 @@ using System.IO; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { // Copied from https://github.com/dotnet/cli/blob/rel/1.0.0/src/Microsoft.DotNet.ProjectModel.Workspaces/SnkUtils.cs - public static class SnkUtils + internal static class SnkUtils { const byte PUBLICKEYBLOB = 0x06; const byte PRIVATEKEYBLOB = 0x07; diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewCompilationInfo.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewCompilationInfo.cs index 302f461b69..ba41993959 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewCompilationInfo.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewCompilationInfo.cs @@ -5,7 +5,7 @@ using Microsoft.AspNetCore.Razor.Evolution; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public class ViewCompilationInfo + internal class ViewCompilationInfo { public ViewCompilationInfo( ViewFileInfo viewFileInfo, diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewFileInfo.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewFileInfo.cs index fe8f1196fc..56e0586525 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewFileInfo.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewFileInfo.cs @@ -5,7 +5,7 @@ using System.IO; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public struct ViewFileInfo + internal struct ViewFileInfo { public ViewFileInfo(string fullPath, string viewEnginePath) { diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewInfoContainerCodeGenerator.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewInfoContainerCodeGenerator.cs index c00ded2d08..52eee2242f 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewInfoContainerCodeGenerator.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Internal/ViewInfoContainerCodeGenerator.cs @@ -15,7 +15,7 @@ using Microsoft.CodeAnalysis.Text; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal { - public class ViewInfoContainerCodeGenerator + internal class ViewInfoContainerCodeGenerator { public ViewInfoContainerCodeGenerator( CSharpCompiler compiler, diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.csproj b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.csproj index 43c611b961..ef524d6a14 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.csproj +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.csproj @@ -1,26 +1,23 @@ - - - - Build-time references required to enable Razor view compilation as part of building the application. - netcoreapp1.1;net451 - win7-x64 - cshtml;razor;compilation;precompilation;aspnetcore - true - exe - false - ..\..\tools\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86\ - - build - build - - - - - - - - - - - + + + + Build-time references required to enable Razor view compilation as part of building the application. + netcoreapp1.1;net451 + win7-x64 + cshtml;razor;compilation;precompilation;aspnetcore + true + exe + ..\..\tools\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86\ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Program.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Program.cs index 623f661e3f..0b4b532c93 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Program.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Program.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal; namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation { - public class Program + internal class Program { private readonly static Type ProgramType = typeof(Program); diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Properties/AssemblyInfo.cs b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..44f26e88db --- /dev/null +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Properties/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// 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.Mvc.Razor.ViewCompilation.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] + diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets index 7df1e2a00a..55d6dbace1 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/common.targets @@ -8,6 +8,7 @@ $(MSBuildProjectDirectory) true + true @@ -53,7 +54,7 @@ Condition="'$(MvcRazorCompileOnPublish)'=='true'" /> @@ -65,6 +66,12 @@ $([System.IO.Path]::GetFileName('$(_MvcRazorOutputFullPath)')) + + + + diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net451/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net451/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets index 032406f597..66a5c2b663 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net451/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets +++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net451/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets @@ -17,18 +17,12 @@ $(OutputPath)$(MSBuildThisFileName)-x86.exe.config - - $(OutputPath)$(MSBuildThisFileName)-x86.exe - $(OutputPath)$(MSBuildThisFileName).exe.config - - $(OutputPath)$(MSBuildThisFileName).exe - --runtimeconfig "$(ProjectRuntimeConfigFilePath)" $(ExecArgs) --depsfile "$(ProjectDepsFilePath)" - $(ExecArgs) "$(MSBuildThisFileDirectory)$(MSBuildThisFileName).dll" + $(ExecArgs) "$(MSBuildThisFileDirectory)../../lib/netcoreapp1.1/$(MSBuildThisFileName).dll" $(ExecArgs) @"$(_MvcRazorResponseFilePath)" diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs index 3f3506a5a1..ec882b50f8 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs @@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; - [ConditionalTheory(Skip = "MVC #5736")] + [ConditionalTheory] [OSSkipCondition(OperatingSystems.Linux, SkipReason = "https://github.com/NuGet/Home/issues/4243, https://github.com/NuGet/Home/issues/4240")] [OSSkipCondition(OperatingSystems.MacOSX, diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs index aa6acc501c..0f09ecb982 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task Precompilation_WorksForViewsUsingRelativePath(RuntimeFlavor flavor) { @@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation } } - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task Precompilation_WorksForViewsUsingDirectoryTraversal(RuntimeFlavor flavor) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs index fab3bdc221..d4e80d6b8b 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs @@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task Precompilation_RunsConfiguredCompilationCallbacks(RuntimeFlavor flavor) { @@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation } } - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task Precompilation_UsesConfiguredParseOptions(RuntimeFlavor flavor) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs index fdbff3dd40..8b79ace4ed 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs @@ -34,7 +34,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation } } - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(ApplicationWithTagHelpersData))] public async Task Precompilation_WorksForViewsThatUseTagHelpers(string url, RuntimeFlavor flavor) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Infrastructure/ApplicationTestFixture.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Infrastructure/ApplicationTestFixture.cs index 7638c78038..df08d0e20c 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Infrastructure/ApplicationTestFixture.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Infrastructure/ApplicationTestFixture.cs @@ -38,6 +38,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public ILogger Logger { get; private set; } public IApplicationDeployer CreateDeployment(RuntimeFlavor flavor) + { + PrepareForDeployment(flavor); + var deploymentParameters = GetDeploymentParameters(flavor); + return ApplicationDeployerFactory.Create(deploymentParameters, Logger); + } + + public virtual void PrepareForDeployment(RuntimeFlavor flavor) { Logger = CreateLogger(flavor); @@ -46,7 +53,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation Restore(); _isRestored = true; } + } + public virtual DeploymentParameters GetDeploymentParameters(RuntimeFlavor flavor) + { var tempRestoreDirectoryEnvironment = new KeyValuePair( NuGetPackagesEnvironmentKey, TempRestoreDirectory); @@ -82,7 +92,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation }, }; - return ApplicationDeployerFactory.Create(deploymentParameters, Logger); + return deploymentParameters; } protected virtual ILogger CreateLogger(RuntimeFlavor flavor) @@ -132,14 +142,23 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation } } - Command + var command = Command .CreateDotNet("restore", args) .EnvironmentVariable(DotnetSkipFirstTimeExperience, "true") - .ForwardStdErr(Console.Error) - .ForwardStdOut(Console.Out) + .CaptureStdErr() + .CaptureStdOut() .WorkingDirectory(applicationDirectory) - .Execute() - .EnsureSuccessful(); + .Execute(); + + if (command.ExitCode != 0) + { + throw new Exception( +$@"dotnet {command.StartInfo.Arguments} failed. +===StdOut=== +{command.StdOut} +===StdErr=== +{command.StdErr}"); + } } private static string CreateTempRestoreDirectory() diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests.csproj b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests.csproj index 374c93019d..182cb42f2d 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests.csproj +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests.csproj @@ -13,6 +13,7 @@ + diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs index ae84606705..1ae6b77938 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs @@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task Precompilation_CanEmbedViewSourcesAsResources(RuntimeFlavor flavor) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Resources/SimpleAppMvc11Test.Home.Index.txt b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Resources/SimpleAppMvc11Test.Home.Index.txt new file mode 100644 index 0000000000..c963a4268b --- /dev/null +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Resources/SimpleAppMvc11Test.Home.Index.txt @@ -0,0 +1,3 @@ +Hello from Index: AspNetCore._Views_Home_Index_cshtml, SimpleAppMvc11.PrecompiledViews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + +AspNetCore._Views_Shared__Layout_cshtml, SimpleAppMvc11.PrecompiledViews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs index d7725794d8..191581d4d9 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public ApplicationTestFixture Fixture { get; } - [ConditionalFact(Skip = "MVC #5736")] + [ConditionalFact] [OSSkipConditionAttribute(OperatingSystems.Linux)] [OSSkipConditionAttribute(OperatingSystems.MacOSX)] public async Task Precompilation_WorksForSimpleApps() diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs index 02a1407124..3e9e48007d 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs @@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task Precompilation_WorksForSimpleApps(RuntimeFlavor flavor) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs index 96524703f2..014751bfd5 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public ApplicationTestFixture Fixture { get; } - [ConditionalFact(Skip = "MVC #5736")] + [ConditionalFact] [OSSkipCondition(OperatingSystems.Linux)] [OSSkipCondition(OperatingSystems.MacOSX)] public async Task Precompilation_WorksForSimpleApps() diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs index 956eb647bb..8b13cf027e 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs @@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; - [Theory(Skip = "MVC #5736")] + [Theory] [MemberData(nameof(SupportedFlavorsTheoryData))] public async Task PrecompiledAssembliesUseSameStrongNameAsApplication(RuntimeFlavor flavor) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs new file mode 100644 index 0000000000..adafc8785d --- /dev/null +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs @@ -0,0 +1,65 @@ +// 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 System.IO; +using Microsoft.AspNetCore.Server.IntegrationTesting; +using Xunit; + +namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation +{ + public class ViewCompilationOptionsTest : IClassFixture + { + public ViewCompilationOptionsTest(TestFixture fixture) + { + Fixture = fixture; + } + + public ApplicationTestFixture Fixture { get; } + + public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData; + + [Theory] + [MemberData(nameof(SupportedFlavorsTheoryData))] + public void Precompilation_PreventsRefAssembliesFromBeingPublished(RuntimeFlavor flavor) + { + // Arrange + using (var deployer = Fixture.CreateDeployment(flavor)) + { + // Act + var deploymentResult = deployer.Deploy(); + + // Assert + Assert.False(Directory.Exists(Path.Combine(deploymentResult.ContentRoot, "refs"))); + } + } + + [Theory] + [MemberData(nameof(SupportedFlavorsTheoryData))] + public void PublishingWithOption_AllowsPublishingRefAssemblies(RuntimeFlavor flavor) + { + // Arrange + Fixture.PrepareForDeployment(flavor); + var deploymentParameters = Fixture.GetDeploymentParameters(flavor); + deploymentParameters.PublishEnvironmentVariables.Add( + new KeyValuePair("MvcRazorExcludeRefAssembliesFromPublish", "false")); + + using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, Fixture.Logger)) + { + // Act + var deploymentResult = deployer.Deploy(); + + // Assert + Assert.True(Directory.Exists(Path.Combine(deploymentResult.ContentRoot, "refs"))); + } + } + + public class TestFixture : ApplicationTestFixture + { + public TestFixture() + : base("SimpleApp") + { + } + } + } +} diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test.csproj b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test.csproj index 515821f5aa..d2a447c2ac 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test.csproj +++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Test.csproj @@ -13,4 +13,8 @@ + + + +