diff --git a/NuGetPackageVerifier.json b/NuGetPackageVerifier.json
index b153ab1515..eadea1d73f 100644
--- a/NuGetPackageVerifier.json
+++ b/NuGetPackageVerifier.json
@@ -1,4 +1,21 @@
{
+ "adx": {
+ "rules": [
+ "DefaultCompositeRule"
+ ],
+ "packages": {
+ "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation": {
+ "exclusions": {
+ "DOC_MISSING": {
+ "lib/netcoreapp2.0/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.dll": "Not a class library. Docs not required for CLI tools"
+ },
+ "BUILD_ITEMS_FRAMEWORK": {
+ "*": "Doesn't matter"
+ }
+ }
+ }
+ }
+ },
"Default": {
"rules": [
"DefaultCompositeRule"
diff --git a/RazorViewCompilation.sln b/RazorViewCompilation.sln
index eb7796e638..a4b6a2edc1 100644
--- a/RazorViewCompilation.sln
+++ b/RazorViewCompilation.sln
@@ -1,7 +1,6 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26329.2
+VisualStudioVersion = 15.0.26516.2
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation", "src\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.csproj", "{4339FC9B-AEC6-442A-B413-A41555ED76C7}"
EndProject
@@ -51,78 +50,240 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApplicationUsingPrecompiled
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApplicationWithTagHelpers", "testapps\ApplicationWithTagHelpers\ApplicationWithTagHelpers.csproj", "{08552602-37E7-48A7-95A2-BB1A1F57C804}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPagesApp", "testapps\RazorPagesApp\RazorPagesApp.csproj", "{779BACC4-B20E-4F73-A9C7-350443CF1941}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RazorPagesApp", "testapps\RazorPagesApp\RazorPagesApp.csproj", "{779BACC4-B20E-4F73-A9C7-350443CF1941}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SimpleAppDesktopOnly", "testapps\SimpleAppDesktopOnly\SimpleAppDesktopOnly.csproj", "{D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{75244EBD-DFBD-4C4B-9543-C135AC142C7F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86", "tools\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj", "{DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4339FC9B-AEC6-442A-B413-A41555ED76C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4339FC9B-AEC6-442A-B413-A41555ED76C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Debug|x64.Build.0 = Debug|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Debug|x86.Build.0 = Debug|Any CPU
{4339FC9B-AEC6-442A-B413-A41555ED76C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4339FC9B-AEC6-442A-B413-A41555ED76C7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Release|x64.ActiveCfg = Release|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Release|x64.Build.0 = Release|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Release|x86.ActiveCfg = Release|Any CPU
+ {4339FC9B-AEC6-442A-B413-A41555ED76C7}.Release|x86.Build.0 = Release|Any CPU
{46C9A4B2-8B1C-451B-B670-C194901D66AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{46C9A4B2-8B1C-451B-B670-C194901D66AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Debug|x64.Build.0 = Debug|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Debug|x86.Build.0 = Debug|Any CPU
{46C9A4B2-8B1C-451B-B670-C194901D66AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{46C9A4B2-8B1C-451B-B670-C194901D66AC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Release|x64.ActiveCfg = Release|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Release|x64.Build.0 = Release|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Release|x86.ActiveCfg = Release|Any CPU
+ {46C9A4B2-8B1C-451B-B670-C194901D66AC}.Release|x86.Build.0 = Release|Any CPU
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Debug|x64.Build.0 = Debug|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Debug|x86.Build.0 = Debug|Any CPU
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x64.ActiveCfg = Release|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x64.Build.0 = Release|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x86.ActiveCfg = Release|Any CPU
+ {E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x86.Build.0 = Release|Any CPU
{8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Debug|x64.Build.0 = Debug|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Debug|x86.Build.0 = Debug|Any CPU
{8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Release|x64.ActiveCfg = Release|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Release|x64.Build.0 = Release|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Release|x86.ActiveCfg = Release|Any CPU
+ {8B7C86DF-FA69-4F3F-A22B-6BFCCBBCEDE0}.Release|x86.Build.0 = Release|Any CPU
{D5677246-BC78-426D-9233-0313A04C6D92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5677246-BC78-426D-9233-0313A04C6D92}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Debug|x64.Build.0 = Debug|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Debug|x86.Build.0 = Debug|Any CPU
{D5677246-BC78-426D-9233-0313A04C6D92}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5677246-BC78-426D-9233-0313A04C6D92}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Release|x64.ActiveCfg = Release|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Release|x64.Build.0 = Release|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Release|x86.ActiveCfg = Release|Any CPU
+ {D5677246-BC78-426D-9233-0313A04C6D92}.Release|x86.Build.0 = Release|Any CPU
{7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Debug|x64.Build.0 = Debug|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Debug|x86.Build.0 = Debug|Any CPU
{7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Release|x64.ActiveCfg = Release|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Release|x64.Build.0 = Release|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Release|x86.ActiveCfg = Release|Any CPU
+ {7EFC460A-8BAA-4538-8EBE-0B3BB6101E94}.Release|x86.Build.0 = Release|Any CPU
{87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Debug|x64.Build.0 = Debug|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Debug|x86.Build.0 = Debug|Any CPU
{87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Release|x64.ActiveCfg = Release|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Release|x64.Build.0 = Release|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Release|x86.ActiveCfg = Release|Any CPU
+ {87C6A03D-1655-4D1C-82E5-8F553BF4096D}.Release|x86.Build.0 = Release|Any CPU
{AF647059-B86B-46DD-9559-E1324A39B148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AF647059-B86B-46DD-9559-E1324A39B148}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Debug|x64.Build.0 = Debug|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Debug|x86.Build.0 = Debug|Any CPU
{AF647059-B86B-46DD-9559-E1324A39B148}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF647059-B86B-46DD-9559-E1324A39B148}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Release|x64.ActiveCfg = Release|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Release|x64.Build.0 = Release|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Release|x86.ActiveCfg = Release|Any CPU
+ {AF647059-B86B-46DD-9559-E1324A39B148}.Release|x86.Build.0 = Release|Any CPU
{0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Debug|x64.Build.0 = Debug|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Debug|x86.Build.0 = Debug|Any CPU
{0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Release|x64.ActiveCfg = Release|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Release|x64.Build.0 = Release|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Release|x86.ActiveCfg = Release|Any CPU
+ {0B512D79-AA53-4C97-91B3-B0F8B2CA16B8}.Release|x86.Build.0 = Release|Any CPU
{559FBB83-40BC-47AF-A224-312CF8E3629B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{559FBB83-40BC-47AF-A224-312CF8E3629B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Debug|x64.Build.0 = Debug|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Debug|x86.Build.0 = Debug|Any CPU
{559FBB83-40BC-47AF-A224-312CF8E3629B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{559FBB83-40BC-47AF-A224-312CF8E3629B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Release|x64.ActiveCfg = Release|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Release|x64.Build.0 = Release|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Release|x86.ActiveCfg = Release|Any CPU
+ {559FBB83-40BC-47AF-A224-312CF8E3629B}.Release|x86.Build.0 = Release|Any CPU
{8F73A290-BCE1-461A-9970-397FFBFCC902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F73A290-BCE1-461A-9970-397FFBFCC902}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Debug|x64.Build.0 = Debug|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Debug|x86.Build.0 = Debug|Any CPU
{8F73A290-BCE1-461A-9970-397FFBFCC902}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F73A290-BCE1-461A-9970-397FFBFCC902}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Release|x64.ActiveCfg = Release|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Release|x64.Build.0 = Release|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Release|x86.ActiveCfg = Release|Any CPU
+ {8F73A290-BCE1-461A-9970-397FFBFCC902}.Release|x86.Build.0 = Release|Any CPU
{196EF313-71CB-47A9-A77D-AACAF62881A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{196EF313-71CB-47A9-A77D-AACAF62881A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Debug|x64.Build.0 = Debug|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Debug|x86.Build.0 = Debug|Any CPU
{196EF313-71CB-47A9-A77D-AACAF62881A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{196EF313-71CB-47A9-A77D-AACAF62881A1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Release|x64.ActiveCfg = Release|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Release|x64.Build.0 = Release|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Release|x86.ActiveCfg = Release|Any CPU
+ {196EF313-71CB-47A9-A77D-AACAF62881A1}.Release|x86.Build.0 = Release|Any CPU
{68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Debug|x64.Build.0 = Debug|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Debug|x86.Build.0 = Debug|Any CPU
{68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Release|x64.ActiveCfg = Release|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Release|x64.Build.0 = Release|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Release|x86.ActiveCfg = Release|Any CPU
+ {68BB859F-E5D5-407E-9DFB-8CD478EFE90D}.Release|x86.Build.0 = Release|Any CPU
{037F4B73-75FB-4570-A38A-9109B580168C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{037F4B73-75FB-4570-A38A-9109B580168C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Debug|x64.Build.0 = Debug|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Debug|x86.Build.0 = Debug|Any CPU
{037F4B73-75FB-4570-A38A-9109B580168C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{037F4B73-75FB-4570-A38A-9109B580168C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Release|x64.ActiveCfg = Release|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Release|x64.Build.0 = Release|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Release|x86.ActiveCfg = Release|Any CPU
+ {037F4B73-75FB-4570-A38A-9109B580168C}.Release|x86.Build.0 = Release|Any CPU
{08552602-37E7-48A7-95A2-BB1A1F57C804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08552602-37E7-48A7-95A2-BB1A1F57C804}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Debug|x64.Build.0 = Debug|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Debug|x86.Build.0 = Debug|Any CPU
{08552602-37E7-48A7-95A2-BB1A1F57C804}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08552602-37E7-48A7-95A2-BB1A1F57C804}.Release|Any CPU.Build.0 = Release|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Release|x64.ActiveCfg = Release|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Release|x64.Build.0 = Release|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Release|x86.ActiveCfg = Release|Any CPU
+ {08552602-37E7-48A7-95A2-BB1A1F57C804}.Release|x86.Build.0 = Release|Any CPU
{779BACC4-B20E-4F73-A9C7-350443CF1941}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{779BACC4-B20E-4F73-A9C7-350443CF1941}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Debug|x64.Build.0 = Debug|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Debug|x86.Build.0 = Debug|Any CPU
{779BACC4-B20E-4F73-A9C7-350443CF1941}.Release|Any CPU.ActiveCfg = Release|Any CPU
{779BACC4-B20E-4F73-A9C7-350443CF1941}.Release|Any CPU.Build.0 = Release|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Release|x64.ActiveCfg = Release|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Release|x64.Build.0 = Release|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Release|x86.ActiveCfg = Release|Any CPU
+ {779BACC4-B20E-4F73-A9C7-350443CF1941}.Release|x86.Build.0 = Release|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Debug|x64.Build.0 = Debug|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Debug|x86.Build.0 = Debug|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Release|x64.ActiveCfg = Release|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Release|x64.Build.0 = Release|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Release|x86.ActiveCfg = Release|Any CPU
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B}.Release|x86.Build.0 = Release|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Debug|x64.Build.0 = Debug|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Debug|x86.Build.0 = Debug|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Release|x64.ActiveCfg = Release|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Release|x64.Build.0 = Release|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Release|x86.ActiveCfg = Release|Any CPU
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -144,5 +305,7 @@ Global
{037F4B73-75FB-4570-A38A-9109B580168C} = {0DC7C88C-E3DB-46DF-B47E-AC5ECB2A16B7}
{08552602-37E7-48A7-95A2-BB1A1F57C804} = {0DC7C88C-E3DB-46DF-B47E-AC5ECB2A16B7}
{779BACC4-B20E-4F73-A9C7-350443CF1941} = {0DC7C88C-E3DB-46DF-B47E-AC5ECB2A16B7}
+ {D838D8E1-997A-4053-BB2A-2CBDE9F09A0B} = {0DC7C88C-E3DB-46DF-B47E-AC5ECB2A16B7}
+ {DFB86DBD-17DA-4A97-A4FD-00D6E5160B3D} = {75244EBD-DFBD-4C4B-9543-C135AC142C7F}
EndGlobalSection
EndGlobal
diff --git a/appveyor.yml b/appveyor.yml
index 88ad7c2042..8bf4dbc95b 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -11,3 +11,4 @@ build_script:
clone_depth: 1
test: off
deploy: off
+os: Visual Studio 2017
\ No newline at end of file
diff --git a/build/common-testapps.props b/build/common-testapps.props
index fad515384e..2eb7ed13ab 100644
--- a/build/common-testapps.props
+++ b/build/common-testapps.props
@@ -5,18 +5,26 @@
+ Condition="'$(TestIncludeViewCompilationTargets)'=='true' AND '$(TargetFramework)'=='netcoreapp2.0'"/>
+
+
+
+
+
+
- <_MvcViewCompilationBinaryPath>$(MSBuildProjectDirectory)\$(OutputPath)Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.dll
+ <_MvcViewCompilationBinaryPath Condition="'$(TargetFramework)'=='netcoreapp2.0'">$(MSBuildProjectDirectory)\$(OutputPath)Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.dll
+ <_MvcViewCompilationBinaryPath Condition="'$(TargetFramework)'=='net461'">$(MSBuildProjectDirectory)\$(OutputPath)Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.exe
diff --git a/build/common.props b/build/common.props
index a2b4a36f67..a92a7975b4 100644
--- a/build/common.props
+++ b/build/common.props
@@ -16,4 +16,8 @@
+
+
+
+
diff --git a/build/dependencies.props b/build/dependencies.props
index b00bb71768..d731c5c602 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -3,7 +3,7 @@
2.0.0-*
0.4.0-*
2.1.0-*
- $(BundledNETStandardPackageVersion)
+ 2.0.0-*
2.0.0-*
15.3.0-*
2.3.0-beta2-*
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 f641b03b42..3b984b59f5 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
@@ -4,22 +4,25 @@
Build-time references required to enable Razor view compilation as part of building the application.
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
cshtml;razor;compilation;precompilation;aspnetcore
true
exe
-
- build
+ ..\..\tools\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86\
+
+
diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net461/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net461/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets
new file mode 100644
index 0000000000..0d3599e5ec
--- /dev/null
+++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/net461/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets
@@ -0,0 +1,50 @@
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+ $(OutputPath)$(MSBuildThisFileName).exe
+ $(OutputPath)$(MSBuildThisFileName)-x86.exe
+
+
+
+
+
+ <_PreCompilationFilesToCopy Include="$(OutputPath)$(AssemblyName).exe.config">
+ $(OutputPath)$(MSBuildThisFileName)-x86.exe.config
+
+
+
+
+ <_PreCompilationFilesToCopy Include="$(OutputPath)$(AssemblyName).exe.config" Condition="">
+ $(OutputPath)$(MSBuildThisFileName).exe.config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/netcoreapp2.0/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/netcoreapp2.0/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets
index a98adaa81c..4f3da09276 100644
--- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/netcoreapp2.0/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets
+++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/build/netcoreapp2.0/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets
@@ -2,12 +2,13 @@
dotnet
- <_MvcViewCompilationBinaryPath Condition="'$(_MvcViewCompilationBinaryPath)'==''">$(MSBuildThisFileDirectory)$(MSBuildThisFileName).dll
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+ <_MvcViewCompilationBinaryPath Condition="'$(_MvcViewCompilationBinaryPath)'==''">$(MSBuildThisFileDirectory)../../lib/netcoreapp2.0/$(MSBuildThisFileName).dll
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs
index a2eea9cc53..0b87a2602c 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationConsumingPrecompiledViews.cs
@@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -16,9 +18,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task ConsumingClassLibrariesWithPrecompiledViewsWork()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task ConsumingClassLibrariesWithPrecompiledViewsWork(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync("Manage/Home", Fixture.Logger);
@@ -34,4 +42,4 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
}
}
}
-}
+}
\ No newline at end of file
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs
index 7cf4d81a61..9aa48f474b 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationUsingRelativePathsTest.cs
@@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -16,9 +18,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task Precompilation_WorksForViewsUsingRelativePath()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForViewsUsingRelativePath(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
Fixture.DeploymentResult.ApplicationBaseUri,
@@ -28,9 +36,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("ApplicationUsingRelativePaths.Home.Index.txt", response);
}
- [Fact]
- public async Task Precompilation_WorksForViewsUsingDirectoryTraversal()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForViewsUsingDirectoryTraversal(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
Fixture.DeploymentResult.ApplicationBaseUri,
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs
index 28d9ade4e8..d85a2b8e72 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithConfigureMvcTest.cs
@@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -16,9 +18,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task Precompilation_RunsConfiguredCompilationCallbacks()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_RunsConfiguredCompilationCallbacks(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
Fixture.DeploymentResult.ApplicationBaseUri,
@@ -28,9 +36,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("ApplicationWithConfigureMvc.Home.Index.txt", response);
}
- [Fact]
- public async Task Precompilation_UsesConfiguredParseOptions()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_UsesConfiguredParseOptions(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
"Home/ViewWithPreprocessor",
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithCustomInputFilesTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithCustomInputFilesTest.cs
index a8753e3139..80108f9f69 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithCustomInputFilesTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithCustomInputFilesTest.cs
@@ -5,6 +5,8 @@ using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests
@@ -21,10 +23,14 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task ApplicationWithCustomInputFiles_Works()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task ApplicationWithCustomInputFiles_Works(RuntimeFlavor flavor)
{
// Arrange
+ Fixture.CreateDeployment(flavor);
var expectedText = "Hello Index!";
// Act
@@ -36,10 +42,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests
Assert.Equal(expectedText, response.Trim());
}
- [Fact]
- public async Task MvcRazorFilesToCompile_OverridesTheFilesToBeCompiled()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task MvcRazorFilesToCompile_OverridesTheFilesToBeCompiled(RuntimeFlavor flavor)
{
// Arrange
+ Fixture.CreateDeployment(flavor);
var expectedViews = new[]
{
"/Views/Home/About.cshtml",
@@ -57,10 +65,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests
Assert.Equal(expectedViews, actual);
}
- [Fact]
- public void MvcRazorFilesToCompile_SpecificallyDoesNotPublishFilesToBeCompiled()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public void MvcRazorFilesToCompile_SpecificallyDoesNotPublishFilesToBeCompiled(RuntimeFlavor flavor)
{
// Arrange
+ Fixture.CreateDeployment(flavor);
var viewsNotPublished = new[]
{
"Index.cshtml",
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithParseErrorsTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithParseErrorsTest.cs
index 22b1ea9d5d..e780770624 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithParseErrorsTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithParseErrorsTest.cs
@@ -6,6 +6,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Logging.Testing;
using Xunit;
@@ -13,8 +14,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
{
public class ApplicationWithParseErrorsTest
{
- [Fact]
- public async Task PublishingPrintsParseErrors()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task PublishingPrintsParseErrors(RuntimeFlavor flavor)
{
// Arrange
var applicationPath = ApplicationPaths.GetTestAppDirectory("ApplicationWithParseErrors");
@@ -27,7 +31,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
};
var testSink = new TestSink();
- var deploymentParameters = ApplicationTestFixture.GetDeploymentParameters(applicationPath);
+ var deploymentParameters = ApplicationTestFixture.GetDeploymentParameters(applicationPath, flavor);
var loggerFactory = new TestLoggerFactory(testSink, enabled: true);
using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory))
{
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs
index bb69df2c17..79916aa318 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ApplicationWithTagHelpersTest.cs
@@ -1,7 +1,10 @@
// 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.Linq;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -19,18 +22,32 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
{
get
{
- return new TheoryData
+ var urls = new[]
{
"ClassLibraryTagHelper",
"LocalTagHelper",
};
+
+ var data = new TheoryData();
+ foreach (var runtimeFlavor in RuntimeFlavors.SupportedFlavors)
+ {
+ foreach(var url in urls)
+ {
+ data.Add(url, runtimeFlavor);
+ }
+ }
+
+ return data;
}
}
[Theory]
[MemberData(nameof(ApplicationWithTagHelpersData))]
- public async Task Precompilation_WorksForViewsThatUseTagHelpers(string url)
+ public async Task Precompilation_WorksForViewsThatUseTagHelpers(string url, RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
$"Home/{url}",
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 8648eea6d0..ea2a84af6c 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Infrastructure/ApplicationTestFixture.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Infrastructure/ApplicationTestFixture.cs
@@ -14,22 +14,37 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
{
public const string DotnetCLITelemetryOptOut = "DOTNET_CLI_TELEMETRY_OPTOUT";
private IApplicationDeployer _deployer;
+ private HttpClient _httpClient;
protected ApplicationTestFixture(string applicationName)
{
ApplicationName = applicationName;
- DeploymentResult = CreateDeployment();
- HttpClient = new HttpClient
- {
- BaseAddress = new Uri(DeploymentResult.ApplicationBaseUri),
- };
}
public string ApplicationName { get; }
public string ApplicationPath => ApplicationPaths.GetTestAppDirectory(ApplicationName);
- public HttpClient HttpClient { get; private set; }
+ public HttpClient HttpClient
+ {
+ get
+ {
+ if (_httpClient == null)
+ {
+ if (DeploymentResult == null)
+ {
+ throw new InvalidOperationException($"{nameof(CreateDeployment)} must be called prior to accessing the {nameof(HttpClient)} property.");
+ }
+
+ _httpClient = new HttpClient
+ {
+ BaseAddress = new Uri(DeploymentResult.ApplicationBaseUri),
+ };
+ }
+
+ return _httpClient;
+ }
+ }
public ILogger Logger { get; private set; }
@@ -37,12 +52,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public DeploymentResult DeploymentResult { get; private set; }
- public virtual DeploymentParameters GetDeploymentParameters()
+ public virtual DeploymentParameters GetDeploymentParameters(RuntimeFlavor flavor)
{
- return GetDeploymentParameters(ApplicationPath);
+ return GetDeploymentParameters(ApplicationPath, flavor);
}
- public static DeploymentParameters GetDeploymentParameters(string applicationPath)
+ public static DeploymentParameters GetDeploymentParameters(string applicationPath, RuntimeFlavor flavor)
{
var telemetryOptOut = new KeyValuePair(
DotnetCLITelemetryOptOut,
@@ -51,11 +66,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
var deploymentParameters = new DeploymentParameters(
applicationPath,
ServerType.Kestrel,
- RuntimeFlavor.CoreClr,
+ flavor,
RuntimeArchitecture.x64)
{
PublishApplicationBeforeDeployment = true,
- TargetFramework = "netcoreapp2.0",
+ TargetFramework = flavor == RuntimeFlavor.Clr ? "net461" : "netcoreapp2.0",
#if DEBUG
Configuration = "Debug",
#else
@@ -81,11 +96,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public void Dispose()
{
- HttpClient?.Dispose();
+ _httpClient?.Dispose();
_deployer?.Dispose();
}
- protected static void TryDeleteDirectory(string directory)
+ private static void TryDeleteDirectory(string directory)
{
try
{
@@ -97,14 +112,14 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
}
}
- private DeploymentResult CreateDeployment()
+ public void CreateDeployment(RuntimeFlavor flavor)
{
LoggerFactory = CreateLoggerFactory();
- Logger = LoggerFactory.CreateLogger(ApplicationName);
+ Logger = LoggerFactory.CreateLogger($"{ApplicationName}:{flavor}");
- var deploymentParameters = GetDeploymentParameters();
+ var deploymentParameters = GetDeploymentParameters(flavor);
_deployer = ApplicationDeployerFactory.Create(deploymentParameters, LoggerFactory);
- return _deployer.DeployAsync().Result;
+ DeploymentResult = _deployer.DeployAsync().Result;
}
}
}
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs
index ac378c4ad9..23efdf4bbf 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/PublishWithEmbedViewSourcesTest.cs
@@ -5,6 +5,8 @@ using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests
@@ -21,10 +23,14 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task Precompilation_CanEmbedViewSourcesAsResources()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_CanEmbedViewSourcesAsResources(RuntimeFlavor flavor)
{
// Arrange
+ Fixture.CreateDeployment(flavor);
var expectedViews = new[]
{
"/Areas/TestArea/Views/Home/Index.cshtml",
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RazorPagesAppTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RazorPagesAppTest.cs
index 0f6ff5ffa1..2788e30e6b 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RazorPagesAppTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RazorPagesAppTest.cs
@@ -3,6 +3,7 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -16,9 +17,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task Precompilation_WorksForIndexPage_UsingFolderName()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForIndexPage_UsingFolderName(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
"/",
@@ -28,9 +35,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("RazorPages.Index.txt", response);
}
- [Fact]
- public async Task Precompilation_WorksForIndexPage_UsingFileName()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForIndexPage_UsingFileName(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
"/Index",
@@ -40,9 +51,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("RazorPages.Index.txt", response);
}
- [Fact]
- public async Task Precompilation_WorksForPageWithModel()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForPageWithModel(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
"/PageWithModel?person=Dan",
@@ -52,9 +67,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("RazorPages.PageWithModel.txt", response);
}
- [Fact]
- public async Task Precompilation_WorksForPageWithRoute()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForPageWithRoute(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
"/PageWithRoute/Dan",
@@ -64,9 +83,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("RazorPages.PageWithRoute.txt", response);
}
- [Fact]
- public async Task Precompilation_WorksForPageInNestedFolder()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForPageInNestedFolder(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
"/Nested1/Nested2/PageWithTagHelper",
@@ -76,9 +99,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
TestEmbeddedResource.AssertContent("RazorPages.Nested1.Nested2.PageWithTagHelper.txt", response);
}
- [Fact]
- public async Task Precompilation_WorksWithPageConventions()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksWithPageConventions(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await RetryHelper.RetryRequest(
() => Fixture.HttpClient.GetAsync("/Auth/Index"),
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RuntimeFlavors.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RuntimeFlavors.cs
new file mode 100644
index 0000000000..c1bd137100
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/RuntimeFlavors.cs
@@ -0,0 +1,39 @@
+// 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.Runtime.InteropServices;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
+{
+ public static class RuntimeFlavors
+ {
+ public static IEnumerable SupportedFlavors
+ {
+ get
+ {
+ yield return RuntimeFlavor.CoreClr;
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ yield return RuntimeFlavor.Clr;
+ }
+ }
+ }
+
+ public static TheoryData SupportedFlavorsTheoryData
+ {
+ get
+ {
+ var theory = new TheoryData();
+ foreach (var item in SupportedFlavors)
+ {
+ theory.Add(item);
+ }
+
+ return theory;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs
index bc5b1e9894..b7d7dfab5d 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppTest.cs
@@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -15,9 +17,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task Precompilation_WorksForSimpleApps()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForSimpleApps(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
Fixture.DeploymentResult.ApplicationBaseUri,
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppWithAssemblyRenameTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppWithAssemblyRenameTest.cs
index bf425a078f..1630f927d8 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppWithAssemblyRenameTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppWithAssemblyRenameTest.cs
@@ -3,6 +3,7 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -16,9 +17,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task Precompilation_WorksForSimpleApps()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task Precompilation_WorksForSimpleApps(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
Fixture.DeploymentResult.ApplicationBaseUri,
@@ -35,9 +42,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
{
}
- public override DeploymentParameters GetDeploymentParameters()
+ public override DeploymentParameters GetDeploymentParameters(RuntimeFlavor flavor)
{
- var parameters = base.GetDeploymentParameters();
+ var parameters = base.GetDeploymentParameters(flavor);
parameters.ApplicationName = "NewAssemblyName";
return parameters;
}
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs
new file mode 100644
index 0000000000..a27a3b94de
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs
@@ -0,0 +1,42 @@
+// 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.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
+{
+ public class SimpleAppX86DesktopOnlyTest : IClassFixture
+ {
+ public SimpleAppX86DesktopOnlyTest(SimpleAppX86DesktopOnlyFixture fixture)
+ {
+ Fixture = fixture;
+ }
+
+ public ApplicationTestFixture Fixture { get; }
+
+ [Fact]
+ public async Task Precompilation_WorksForSimpleApps()
+ {
+ // Arrange
+ Fixture.CreateDeployment(RuntimeFlavor.Clr);
+
+ // Act
+ var response = await Fixture.HttpClient.GetStringWithRetryAsync(
+ Fixture.DeploymentResult.ApplicationBaseUri,
+ Fixture.Logger);
+
+ // Assert
+ TestEmbeddedResource.AssertContent("SimpleAppX86DesktopOnly.Home.Index.txt", response);
+ }
+
+ public class SimpleAppX86DesktopOnlyFixture : ApplicationTestFixture
+ {
+ public SimpleAppX86DesktopOnlyFixture()
+ : base("SimpleAppX86DesktopOnly")
+ {
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs
index b1b63329a5..2cbb400df9 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/StrongNamedAppTest.cs
@@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -15,9 +17,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public async Task PrecompiledAssembliesUseSameStrongNameAsApplication()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task PrecompiledAssembliesUseSameStrongNameAsApplication(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act
var response = await Fixture.HttpClient.GetStringWithRetryAsync(
Fixture.DeploymentResult.ApplicationBaseUri,
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs
index 7f610020f5..9ccf87610a 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/ViewCompilationOptionsTest.cs
@@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
@@ -18,18 +19,25 @@ namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
public ApplicationTestFixture Fixture { get; }
- [Fact]
- public void Precompilation_PreventsRefAssembliesFromBeingPublished()
+ public static TheoryData SupportedFlavorsTheoryData => RuntimeFlavors.SupportedFlavorsTheoryData;
+
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public void Precompilation_PreventsRefAssembliesFromBeingPublished(RuntimeFlavor flavor)
{
+ // Arrange
+ Fixture.CreateDeployment(flavor);
+
// Act & Assert
Assert.False(Directory.Exists(Path.Combine(Fixture.DeploymentResult.ContentRoot, "refs")));
}
- [Fact]
- public async Task PublishingWithOption_AllowsPublishingRefAssemblies()
+ [ConditionalTheory]
+ [MemberData(nameof(SupportedFlavorsTheoryData))]
+ public async Task PublishingWithOption_AllowsPublishingRefAssemblies(RuntimeFlavor flavor)
{
// Arrange
- var deploymentParameters = Fixture.GetDeploymentParameters();
+ var deploymentParameters = Fixture.GetDeploymentParameters(flavor);
deploymentParameters.PublishEnvironmentVariables.Add(
new KeyValuePair("MvcRazorExcludeRefAssembliesFromPublish", "false"));
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 13be6743d1..1648de0212 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
@@ -3,7 +3,9 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
diff --git a/testapps/ApplicationUsingPrecompiledViewClassLibrary/ApplicationUsingPrecompiledViewClassLibrary.csproj b/testapps/ApplicationUsingPrecompiledViewClassLibrary/ApplicationUsingPrecompiledViewClassLibrary.csproj
index 1de9d7e03a..b48f592655 100644
--- a/testapps/ApplicationUsingPrecompiledViewClassLibrary/ApplicationUsingPrecompiledViewClassLibrary.csproj
+++ b/testapps/ApplicationUsingPrecompiledViewClassLibrary/ApplicationUsingPrecompiledViewClassLibrary.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
diff --git a/testapps/ApplicationUsingRelativePaths/ApplicationUsingRelativePaths.csproj b/testapps/ApplicationUsingRelativePaths/ApplicationUsingRelativePaths.csproj
index b56509af0d..632b2e7e05 100644
--- a/testapps/ApplicationUsingRelativePaths/ApplicationUsingRelativePaths.csproj
+++ b/testapps/ApplicationUsingRelativePaths/ApplicationUsingRelativePaths.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/ApplicationWithConfigureMvc/ApplicationWithConfigureMvc.csproj b/testapps/ApplicationWithConfigureMvc/ApplicationWithConfigureMvc.csproj
index b56509af0d..632b2e7e05 100644
--- a/testapps/ApplicationWithConfigureMvc/ApplicationWithConfigureMvc.csproj
+++ b/testapps/ApplicationWithConfigureMvc/ApplicationWithConfigureMvc.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/ApplicationWithCustomInputFiles/ApplicationWithCustomInputFiles.csproj b/testapps/ApplicationWithCustomInputFiles/ApplicationWithCustomInputFiles.csproj
index c180afa00f..1f3a5714e1 100644
--- a/testapps/ApplicationWithCustomInputFiles/ApplicationWithCustomInputFiles.csproj
+++ b/testapps/ApplicationWithCustomInputFiles/ApplicationWithCustomInputFiles.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
true
diff --git a/testapps/ApplicationWithParseErrors/ApplicationWithParseErrors.csproj b/testapps/ApplicationWithParseErrors/ApplicationWithParseErrors.csproj
index b56509af0d..632b2e7e05 100644
--- a/testapps/ApplicationWithParseErrors/ApplicationWithParseErrors.csproj
+++ b/testapps/ApplicationWithParseErrors/ApplicationWithParseErrors.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/ApplicationWithTagHelpers/ApplicationWithTagHelpers.csproj b/testapps/ApplicationWithTagHelpers/ApplicationWithTagHelpers.csproj
index 599b96fa59..e2b4bc0a9e 100644
--- a/testapps/ApplicationWithTagHelpers/ApplicationWithTagHelpers.csproj
+++ b/testapps/ApplicationWithTagHelpers/ApplicationWithTagHelpers.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/ClassLibraryTagHelper/ClassLibraryTagHelper.csproj b/testapps/ClassLibraryTagHelper/ClassLibraryTagHelper.csproj
index 9b2e3f2908..918c156091 100644
--- a/testapps/ClassLibraryTagHelper/ClassLibraryTagHelper.csproj
+++ b/testapps/ClassLibraryTagHelper/ClassLibraryTagHelper.csproj
@@ -2,7 +2,8 @@
- netstandard1.6
+ netstandard1.6;net461
+ netstandard1.6
diff --git a/testapps/ClassLibraryWithPrecompiledViews/ClassLibraryWithPrecompiledViews.csproj b/testapps/ClassLibraryWithPrecompiledViews/ClassLibraryWithPrecompiledViews.csproj
index 9a6990c1f1..5d65410110 100644
--- a/testapps/ClassLibraryWithPrecompiledViews/ClassLibraryWithPrecompiledViews.csproj
+++ b/testapps/ClassLibraryWithPrecompiledViews/ClassLibraryWithPrecompiledViews.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
obj\precompiled\$(TargetFramework)
true
diff --git a/testapps/PublishWithEmbedViewSources/PublishWithEmbedViewSources.csproj b/testapps/PublishWithEmbedViewSources/PublishWithEmbedViewSources.csproj
index b79aeb12dc..fa1036a806 100644
--- a/testapps/PublishWithEmbedViewSources/PublishWithEmbedViewSources.csproj
+++ b/testapps/PublishWithEmbedViewSources/PublishWithEmbedViewSources.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
true
diff --git a/testapps/RazorPagesApp/RazorPagesApp.csproj b/testapps/RazorPagesApp/RazorPagesApp.csproj
index f141b468b9..796e4ee7c4 100644
--- a/testapps/RazorPagesApp/RazorPagesApp.csproj
+++ b/testapps/RazorPagesApp/RazorPagesApp.csproj
@@ -1,7 +1,9 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/SimpleApp/SimpleApp.csproj b/testapps/SimpleApp/SimpleApp.csproj
index b56509af0d..632b2e7e05 100644
--- a/testapps/SimpleApp/SimpleApp.csproj
+++ b/testapps/SimpleApp/SimpleApp.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs b/testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs
new file mode 100644
index 0000000000..0b44851019
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs
@@ -0,0 +1,9 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace SimpleApp.Controllers
+{
+ public class HomeController : Controller
+ {
+ public IActionResult Index() => View();
+ }
+}
diff --git a/testapps/SimpleAppDesktopOnly/Program.cs b/testapps/SimpleAppDesktopOnly/Program.cs
new file mode 100644
index 0000000000..6ed39c5e32
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Program.cs
@@ -0,0 +1,26 @@
+using System.IO;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
+
+namespace SimpleApp
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ {
+ var config = new ConfigurationBuilder()
+ .AddCommandLine(args)
+ .AddEnvironmentVariables(prefix: "ASPNETCORE_")
+ .Build();
+
+ var host = new WebHostBuilder()
+ .UseConfiguration(config)
+ .UseKestrel()
+ .UseContentRoot(Directory.GetCurrentDirectory())
+ .UseStartup()
+ .Build();
+
+ host.Run();
+ }
+ }
+}
diff --git a/testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.csproj b/testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.csproj
new file mode 100644
index 0000000000..2abde147e2
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net461
+ win7-x64
+ true
+
+
+
+
+
+
+
+ $(AspNetCoreVersion)
+ All
+
+
+
+
+
+
diff --git a/testapps/SimpleAppDesktopOnly/Startup.cs b/testapps/SimpleAppDesktopOnly/Startup.cs
new file mode 100644
index 0000000000..461873a890
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Startup.cs
@@ -0,0 +1,26 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+
+namespace SimpleApp
+{
+ public class Startup
+ {
+ public void ConfigureServices(IServiceCollection services)
+ {
+ // Add framework services.
+ services.AddMvc();
+ }
+
+ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
+ {
+ loggerFactory.AddConsole();
+ app.UseMvc(routes =>
+ {
+ routes.MapRoute(
+ name: "default",
+ template: "{controller=Home}/{action=Index}/{id?}");
+ });
+ }
+ }
+}
diff --git a/testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml b/testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml
new file mode 100644
index 0000000000..9c6b7fb5ff
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml
@@ -0,0 +1,5 @@
+@{
+ ViewData["Title"] = "Home Page";
+}
+
+@GetType().AssemblyQualifiedName
\ No newline at end of file
diff --git a/testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml b/testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000000..4f65b1d219
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml
@@ -0,0 +1,68 @@
+
+
+
+
+
+ @ViewData["Title"] - SimpleApp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @RenderSection("scripts", required: false)
+ @GetType().AssemblyQualifiedName
+
+
diff --git a/testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml b/testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml
new file mode 100644
index 0000000000..71413f674c
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml
@@ -0,0 +1,2 @@
+@using SimpleApp
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
diff --git a/testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml b/testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml
new file mode 100644
index 0000000000..a5f10045db
--- /dev/null
+++ b/testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/testapps/SimpleAppWithAssemblyRename/SimpleAppWithAssemblyRename.csproj b/testapps/SimpleAppWithAssemblyRename/SimpleAppWithAssemblyRename.csproj
index 4900f4273a..928bb9002a 100644
--- a/testapps/SimpleAppWithAssemblyRename/SimpleAppWithAssemblyRename.csproj
+++ b/testapps/SimpleAppWithAssemblyRename/SimpleAppWithAssemblyRename.csproj
@@ -1,7 +1,9 @@
NewAssemblyName
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
true
diff --git a/testapps/StrongNamedApp/StrongNamedApp.csproj b/testapps/StrongNamedApp/StrongNamedApp.csproj
index 0c90190e03..9e43484f7b 100644
--- a/testapps/StrongNamedApp/StrongNamedApp.csproj
+++ b/testapps/StrongNamedApp/StrongNamedApp.csproj
@@ -1,6 +1,8 @@
- netcoreapp2.0
+ netcoreapp2.0;net461
+ netcoreapp2.0
+ win7-x64
../../build/Key.snk
true
true
diff --git a/tools/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj b/tools/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj
new file mode 100644
index 0000000000..954058c0a0
--- /dev/null
+++ b/tools/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Build-time references required to enable Razor view compilation as part of building the application.
+ net461
+ win7-x86
+ exe
+ ..\..\src\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file