diff --git a/RazorViewCompilation.sln b/RazorViewCompilation.sln
index 73a67c64d4..04edc277a6 100644
--- a/RazorViewCompilation.sln
+++ b/RazorViewCompilation.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26118.1
+VisualStudioVersion = 15.0.26123.0
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
@@ -24,6 +24,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{87FEE984
build\common.props = build\common.props
EndProjectSection
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86", "pack\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj", "{9F47A520-7DAB-409D-81C8-AD351562A1A5}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -69,6 +71,18 @@ Global
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x64.Build.0 = Release|x64
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x86.ActiveCfg = Release|x86
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F}.Release|x86.Build.0 = Release|x86
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Debug|x64.ActiveCfg = Debug|x64
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Debug|x64.Build.0 = Debug|x64
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Debug|x86.ActiveCfg = Debug|x86
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Debug|x86.Build.0 = Debug|x86
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Release|x64.ActiveCfg = Release|x64
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Release|x64.Build.0 = Release|x64
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Release|x86.ActiveCfg = Release|x86
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -77,5 +91,6 @@ Global
{4339FC9B-AEC6-442A-B413-A41555ED76C7} = {02F7AA35-91AF-491E-9F0E-03CFAF86C720}
{46C9A4B2-8B1C-451B-B670-C194901D66AC} = {0398AFFF-505E-4283-89DA-BBD9D28B53DB}
{E0D75B4E-839F-4F80-9B1F-B33F616BCC5F} = {0398AFFF-505E-4283-89DA-BBD9D28B53DB}
+ {9F47A520-7DAB-409D-81C8-AD351562A1A5} = {02F7AA35-91AF-491E-9F0E-03CFAF86C720}
EndGlobalSection
EndGlobal
diff --git a/pack/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj b/pack/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86.csproj
new file mode 100644
index 0000000000..05ad7af468
--- /dev/null
+++ b/pack/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.
+ net451
+ win7-x86
+ exe
+ ..\src\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
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 d5d4740ae6..3c397e3d1d 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,29 +1,28 @@
-
-
-
- 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
-
-
- 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
+ ..\..\pack\
+
+ build
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 5a2232444b..623f661e3f 100644
--- a/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Program.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation/Program.cs
@@ -2,8 +2,6 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
-using System.Linq;
-using System.Reflection;
using Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal;
namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
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 1dc1bbf2b3..032406f597 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
@@ -1,7 +1,8 @@
-
- $(OutputPath)$(MSBuildThisFileName).exe
+
+ $(OutputPath)$(MSBuildThisFileName)-x86.exe
+ $(OutputPath)$(MSBuildThisFileName).exe
-
+
+ $(OutputPath)$(MSBuildThisFileName)-x86.exe.config
+
+
+ $(OutputPath)$(MSBuildThisFileName)-x86.exe
+
+
+
+
+
$(OutputPath)$(MSBuildThisFileName).exe.config
- $(MvcRazorRunCommand)
+ $(OutputPath)$(MSBuildThisFileName).exe
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Resources/SimpleAppX86DesktopOnly.Home.Index.txt b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Resources/SimpleAppX86DesktopOnly.Home.Index.txt
new file mode 100644
index 0000000000..50c970046c
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/Resources/SimpleAppX86DesktopOnly.Home.Index.txt
@@ -0,0 +1 @@
+AspNetCore._Views_Home_Index_cshtml, SimpleAppX86DesktopOnly.PrecompiledViews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
\ No newline at end of file
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..014751bfd5
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.FunctionalTests/SimpleAppX86DesktopOnlyTest.cs
@@ -0,0 +1,48 @@
+// 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 Microsoft.AspNetCore.Testing.xunit;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
+{
+ public class SimpleAppX86DesktopOnlyTest : IClassFixture
+ {
+ public SimpleAppX86DesktopOnlyTest(SimpleAppX86DesktopOnlyFixture fixture)
+ {
+ Fixture = fixture;
+ }
+
+ public ApplicationTestFixture Fixture { get; }
+
+ [ConditionalFact]
+ [OSSkipCondition(OperatingSystems.Linux)]
+ [OSSkipCondition(OperatingSystems.MacOSX)]
+ public async Task Precompilation_WorksForSimpleApps()
+ {
+ // Arrange
+ using (var deployer = Fixture.CreateDeployment(RuntimeFlavor.Clr))
+ {
+ var deploymentResult = deployer.Deploy();
+
+ // Act
+ var response = await Fixture.HttpClient.GetStringWithRetryAsync(
+ deploymentResult.ApplicationBaseUri,
+ Fixture.Logger);
+
+ // Assert
+ TestEmbeddedResource.AssertContent("SimpleAppX86DesktopOnly.Home.Index.txt", response);
+ }
+ }
+
+ public class SimpleAppX86DesktopOnlyFixture : ApplicationTestFixture
+ {
+ public SimpleAppX86DesktopOnlyFixture()
+ : base("SimpleAppX86DesktopOnly")
+ {
+ }
+ }
+ }
+}
diff --git a/testapps/SimpleAppX86DesktopOnly/Controllers/HomeController.cs b/testapps/SimpleAppX86DesktopOnly/Controllers/HomeController.cs
new file mode 100644
index 0000000000..0b44851019
--- /dev/null
+++ b/testapps/SimpleAppX86DesktopOnly/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/SimpleAppX86DesktopOnly/Program.cs b/testapps/SimpleAppX86DesktopOnly/Program.cs
new file mode 100644
index 0000000000..6ed39c5e32
--- /dev/null
+++ b/testapps/SimpleAppX86DesktopOnly/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/SimpleAppX86DesktopOnly/SimpleAppX86DesktopOnly.csproj b/testapps/SimpleAppX86DesktopOnly/SimpleAppX86DesktopOnly.csproj
new file mode 100644
index 0000000000..56dd3cab85
--- /dev/null
+++ b/testapps/SimpleAppX86DesktopOnly/SimpleAppX86DesktopOnly.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net451
+ win7-x86
+ true
+ Exe
+ true
+
+
+
+
+
+ 1.1.0-*
+ All
+
+
+
+
+
+
diff --git a/testapps/SimpleAppX86DesktopOnly/Startup.cs b/testapps/SimpleAppX86DesktopOnly/Startup.cs
new file mode 100644
index 0000000000..461873a890
--- /dev/null
+++ b/testapps/SimpleAppX86DesktopOnly/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/SimpleAppX86DesktopOnly/Views/Home/Index.cshtml b/testapps/SimpleAppX86DesktopOnly/Views/Home/Index.cshtml
new file mode 100644
index 0000000000..096681fc55
--- /dev/null
+++ b/testapps/SimpleAppX86DesktopOnly/Views/Home/Index.cshtml
@@ -0,0 +1 @@
+@GetType().AssemblyQualifiedName
\ No newline at end of file