Add a Razor design time build

This allows Razor to know what files belong to the project.
This commit is contained in:
Ryan Nowak 2018-05-14 08:26:58 -07:00
parent ccec11c19d
commit a412299881
2 changed files with 32 additions and 0 deletions

View File

@ -45,4 +45,7 @@ Copyright (c) .NET Foundation. All rights reserved.
</PropertyPageSchema>
</ItemGroup>
<Target Name="RazorGenerateDesignTime" DependsOnTargets="ResolveRazorGenerateInputs;AssignRazorGenerateTargetPaths" Returns="@(RazorGenerateWithTargetPath)">
</Target>
</Project>

View File

@ -1,6 +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.IO;
using System.Threading.Tasks;
using Xunit;
@ -35,5 +36,33 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.DoesNotContain("RazorCoreGenerate", result.Output);
Assert.DoesNotContain("RazorCoreCompile", result.Output);
}
[Fact]
[InitializeTestProject("SimpleMvc")]
public async Task RazorGenerateDesignTime_ReturnsRazorGenerateWithTargetPath()
{
var result = await DotnetMSBuild("RazorGenerateDesignTime;_IntrospectRazorGenerateWithTargetPath");
Assert.BuildPassed(result);
var filePaths = new string[]
{
Path.Combine("Views", "Home", "About.cshtml"),
Path.Combine("Views", "Home", "Contact.cshtml"),
Path.Combine("Views", "Home", "Index.cshtml"),
Path.Combine("Views", "Shared", "Error.cshtml"),
Path.Combine("Views", "Shared", "_Layout.cshtml"),
Path.Combine("Views", "Shared", "_ValidationScriptsPartial.cshtml"),
Path.Combine("Views", "_ViewImports.cshtml"),
Path.Combine("Views", "_ViewStart.cshtml"),
};
foreach (var filePath in filePaths)
{
Assert.BuildOutputContainsLine(
result,
$@"RazorGenerateWithTargetPath: {filePath} {filePath} {Path.Combine(RazorIntermediateOutputPath, Path.ChangeExtension(filePath, ".g.cshtml.cs"))}");
}
}
}
}