From 11c8ad40108c4467b60791cb0ffe44a23d4fc80a Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 15 Jun 2020 09:08:13 -0700 Subject: [PATCH] Consolidate RazorSdkDirectory logic (#22836) * Consolidate RazorSdkDirectory logic --- eng/targets/CSharp.Common.props | 40 ++++++++----------- eng/targets/GetRazorSDKDirectory.props | 5 +++ .../BlazorTemplates.Tests.csproj | 4 ++ .../Infrastructure/TemplateTests.props.in | 4 -- src/ProjectTemplates/Shared/Project.cs | 9 ++++- .../Infrastructure/TemplateTests.props.in | 6 +-- .../test/ProjectTemplates.Tests.csproj | 5 +++ 7 files changed, 39 insertions(+), 34 deletions(-) create mode 100644 eng/targets/GetRazorSDKDirectory.props diff --git a/eng/targets/CSharp.Common.props b/eng/targets/CSharp.Common.props index 080cdea9d4..a8922df73b 100644 --- a/eng/targets/CSharp.Common.props +++ b/eng/targets/CSharp.Common.props @@ -14,30 +14,24 @@ - - - - - - - - - $(ArtifactsBinDir)Microsoft.NET.Sdk.Razor\$(Configuration)\sdk-output\ - - - - - + + + + + + + + diff --git a/eng/targets/GetRazorSDKDirectory.props b/eng/targets/GetRazorSDKDirectory.props new file mode 100644 index 0000000000..7089256236 --- /dev/null +++ b/eng/targets/GetRazorSDKDirectory.props @@ -0,0 +1,5 @@ + + + $(ArtifactsBinDir)Microsoft.NET.Sdk.Razor\$(Configuration)\sdk-output\ + + \ No newline at end of file diff --git a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj index 2c7f374a25..5403eadca1 100644 --- a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj +++ b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj @@ -68,6 +68,10 @@ <_Parameter2>$(TargetFramework) <_Parameter3> + + <_Parameter1>Test.RazorSdkDirectoryRoot + <_Parameter2>$(RazorSdkDirectoryRoot) + diff --git a/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/TemplateTests.props.in b/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/TemplateTests.props.in index a32b6b82bc..0b1eeedf1b 100644 --- a/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/TemplateTests.props.in +++ b/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/TemplateTests.props.in @@ -35,8 +35,4 @@ Since this is a project reference, we must explicitly import the props file and also specify the output location of the SDK directory. --> - - - ${ArtifactsBinDir}Microsoft.NET.Sdk.Razor\${Configuration}\sdk-output\ - diff --git a/src/ProjectTemplates/Shared/Project.cs b/src/ProjectTemplates/Shared/Project.cs index d16835a57d..505716e01e 100644 --- a/src/ProjectTemplates/Shared/Project.cs +++ b/src/ProjectTemplates/Shared/Project.cs @@ -39,6 +39,7 @@ namespace Templates.Test.Helpers public string ProjectGuid { get; set; } public string TemplateOutputDir { get; set; } public string TargetFramework { get; set; } = GetAssemblyMetadata("Test.DefaultTargetFramework"); + public string RazorSdkDirectoryRoot { get; set; } = GetAssemblyMetadata("Test.RazorSdkDirectoryRoot"); public string TemplateBuildDir => Path.Combine(TemplateOutputDir, "bin", "Debug", TargetFramework); public string TemplatePublishDir => Path.Combine(TemplateOutputDir, "bin", "Release", TargetFramework, "publish"); @@ -116,7 +117,9 @@ namespace Templates.Test.Helpers // Avoid restoring as part of build or publish. These projects should have already restored as part of running dotnet new. Explicitly disabling restore // should avoid any global contention and we can execute a build or publish in a lock-free way - using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"publish --no-restore -c Release /bl {additionalArgs}", packageOptions); + var razorSDKarg = string.IsNullOrEmpty(RazorSdkDirectoryRoot) ? string.Empty : $"/p:RazorSdkDirectoryRoot={RazorSdkDirectoryRoot}"; + + using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"publish --no-restore -c Release /bl {razorSDKarg} {additionalArgs}", packageOptions); await result.Exited; CaptureBinLogOnFailure(result); return new ProcessResult(result); @@ -129,7 +132,9 @@ namespace Templates.Test.Helpers // Avoid restoring as part of build or publish. These projects should have already restored as part of running dotnet new. Explicitly disabling restore // should avoid any global contention and we can execute a build or publish in a lock-free way - using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"build --no-restore -c Debug /bl {additionalArgs}", packageOptions); + var razorSDKarg = string.IsNullOrEmpty(RazorSdkDirectoryRoot) ? string.Empty : $"/p:RazorSdkDirectoryRoot={RazorSdkDirectoryRoot}"; + + using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"build --no-restore -c Debug /bl {razorSDKarg} {additionalArgs}", packageOptions); await result.Exited; CaptureBinLogOnFailure(result); return new ProcessResult(result); diff --git a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in index 7db32362ad..227bffd7a5 100644 --- a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in +++ b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in @@ -34,9 +34,5 @@ We reference the project to ensure it's built before the other projects that use it. Since this is a project reference, we must explicitly import the props file and also specify the output location of the SDK directory. --> - - - - ${ArtifactsBinDir}Microsoft.NET.Sdk.Razor\${Configuration}\sdk-output\ - + diff --git a/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj b/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj index b5d75bc5ed..081f1b5862 100644 --- a/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj +++ b/src/ProjectTemplates/test/ProjectTemplates.Tests.csproj @@ -2,6 +2,7 @@ + $(DefaultNetCoreTargetFramework) @@ -61,6 +62,10 @@ <_Parameter1>Test.DefaultTargetFramework <_Parameter2>$(DefaultNetCoreTargetFramework) + + <_Parameter1>Test.RazorSdkDirectoryRoot + <_Parameter2>$(RazorSdkDirectoryRoot) + <_Parameter1>ContinuousIntegrationBuild <_Parameter2>true