Skip to content

Commit 2ac1078

Browse files
authored
Enable SiteExtensions build in VMR Pass 2 (#61004)
1 parent a09c099 commit 2ac1078

File tree

5 files changed

+75
-9
lines changed

5 files changed

+75
-9
lines changed

eng/Build.props

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,21 @@
8383
</ProjectToBuild>
8484
</ItemGroup>
8585
</When>
86+
<!-- Projects to build in VMR build pass 2 -->
8687
<When Condition="'$(DotNetBuildPass)' == '2'">
8788
<ItemGroup Condition=" '$(DotNetBuild)' == 'true' AND '$(TargetOsName)' == 'win' AND '$(TargetArchitecture)' == 'x64' ">
89+
<!-- Build Hosting Bundle -->
8890
<ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\WindowsHostingBundle\WindowsHostingBundle.wixproj">
8991
<AdditionalProperties>Platform=x86</AdditionalProperties>
9092
<DotNetBuildPass>$(DotNetBuildPass)</DotNetBuildPass>
9193
</ProjectToBuild>
9294
<ProjectToBuild Include="$(RepoRoot)src\Servers\IIS/IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" >
9395
<DotNetBuildPass>$(DotNetBuildPass)</DotNetBuildPass>
9496
</ProjectToBuild>
97+
<!-- Build SiteExtensions -->
98+
<ProjectToBuild Include="$(RepoRoot)src\SiteExtensions\LoggingAggregate\src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj">
99+
<DotNetBuildPass>$(DotNetBuildPass)</DotNetBuildPass>
100+
</ProjectToBuild>
95101
</ItemGroup>
96102
</When>
97103
<Otherwise>

eng/Common.props

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,10 @@
3131
<PropertyGroup>
3232
<BuildNative Condition=" '$(BuildNative)' == '' ">false</BuildNative>
3333
</PropertyGroup>
34+
35+
<!-- Don't restore w/ nuget.targets in VMR pass 2 -->
36+
<!-- This allows us to hook targets before Restore in the SiteExtensions build -->
37+
<PropertyGroup Condition=" '$(DotNetBuildPass)' == '2' " >
38+
<RestoreUsingNuGetTargets>false</RestoreUsingNuGetTargets>
39+
</PropertyGroup>
3440
</Project>

src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<IsPackable>true</IsPackable>
1919
<IsShipping>true</IsShipping>
2020
<IsShipping Condition=" '$(PreReleaseVersionLabel)' == 'preview' ">false</IsShipping>
21+
<SiteExtensionsReferenceLayoutDir>$(ArtifactsObjDir)SiteExtensionsReferenceLayout/</SiteExtensionsReferenceLayoutDir>
2122

2223
<!-- Grab packages LB.csproj should have just built. -->
2324
<RestoreAdditionalProjectSources>$(RestoreAdditionalProjectSources);$(ArtifactsNonShippingPackagesDir)</RestoreAdditionalProjectSources>
@@ -38,15 +39,44 @@
3839
UpdateLatestPackageReferences for the hard way.
3940
-->
4041
<PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x64"
41-
Condition=" '$(IsShipping)' == 'false' "
42+
Condition=" '$(IsShipping)' == 'false' AND '$(DotNetBuild)' != 'true'"
4243
PrivateAssets="All"
4344
Version="$(PackageVersion)" />
4445
<PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x86"
45-
Condition=" '$(IsShipping)' == 'false' "
46+
Condition=" '$(IsShipping)' == 'false' AND '$(DotNetBuild)' != 'true'"
4647
PrivateAssets="All"
4748
Version="$(PackageVersion)" />
49+
50+
<_SiteExtensionsReference Include="$(ArtifactsNonShippingPackagesDir)Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x64.$(PackageVersion).nupkg"
51+
Name="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x64"
52+
Condition=" '$(IsShipping)' == 'false' AND '$(DotNetBuild)' == 'true'" />
53+
<_SiteExtensionsReference Include="$(ArtifactsNonShippingPackagesDir)Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x86.$(PackageVersion).nupkg"
54+
Name="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x86"
55+
Condition=" '$(IsShipping)' == 'false' AND '$(DotNetBuild)' == 'true'" />
4856
</ItemGroup>
4957

58+
<Target Name="BuildSiteExtensionInputs"
59+
BeforeTargets="Restore"
60+
Condition=" '$(DotNetBuildPass)' == '2' ">
61+
62+
<MSBuild Projects="..\..\..\LoggingBranch\LB.csproj"
63+
BuildInParallel="$(BuildInParallel)"
64+
Properties="Platform=x64;DisableTransitiveFrameworkReferences=true"
65+
Targets="_VmrBuild" />
66+
<MSBuild Projects="..\..\..\LoggingBranch\LB.csproj"
67+
BuildInParallel="$(BuildInParallel)"
68+
Properties="Platform=x86;TargetRid=win-x86;BaseOS=win-x86;TargetRuntimeIdentifier=win-x86;TargetArchitecture=x86;DisableTransitiveFrameworkReferences=true"
69+
Targets="_VmrBuild" />
70+
<MSBuild Projects="..\..\..\Runtime\Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj"
71+
BuildInParallel="$(BuildInParallel)"
72+
Properties="Platform=x64"
73+
Targets="_VmrBuild" />
74+
<MSBuild Projects="..\..\..\Runtime\Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj"
75+
BuildInParallel="$(BuildInParallel)"
76+
Properties="Platform=x86;TargetRid=win-x86;BaseOS=win-x86;TargetRuntimeIdentifier=win-x86;TargetArchitecture=x86"
77+
Targets="_VmrBuild" />
78+
</Target>
79+
5080
<ItemGroup>
5181
<Content Include="applicationHost.xdt" />
5282
<Content Include="scmApplicationHost.xdt" />
@@ -68,37 +98,54 @@
6898
-->
6999
<Target Name="UpdateLatestPackageReferences"
70100
BeforeTargets="CollectPackageReferences;ResolveAssemblyReferencesDesignTime;ResolveAssemblyReferences"
71-
Condition=" '$(IsShipping)' == 'true' ">
101+
Condition=" '$(IsShipping)' == 'true'">
72102
<!-- This target is defined in eng/targets/Packaging.targets and included in every C# and F# project. -->
73103
<MSBuild Projects="$(RepoRoot)src\SiteExtensions\LoggingBranch\LB.csproj"
74104
Targets="_GetPackageVersionInfo">
75105
<Output TaskParameter="TargetOutputs" ItemName="_ResolvedPackageVersionInfo" />
76106
</MSBuild>
77107

78-
<ItemGroup>
108+
<ItemGroup Condition="'$(DotNetBuild)' != 'true'">
79109
<PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x64"
80110
PrivateAssets="All"
81111
Version="%(_ResolvedPackageVersionInfo.PackageVersion)" />
82112
<PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x86"
83113
PrivateAssets="All"
84114
Version="%(_ResolvedPackageVersionInfo.PackageVersion)" />
85115
</ItemGroup>
116+
117+
<ItemGroup Condition="'$(DotNetBuild)' == 'true'">
118+
<_SiteExtensionsReference Include="$(ArtifactsNonShippingPackagesDir)Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x64.%(_ResolvedPackageVersionInfo.PackageVersion).nupkg"
119+
Name="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x64" />
120+
<_SiteExtensionsReference Include="$(ArtifactsNonShippingPackagesDir)Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x86.%(_ResolvedPackageVersionInfo.PackageVersion).nupkg"
121+
Name="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorMinorVersion).x86" />
122+
</ItemGroup>
86123
</Target>
87124

88125
<Target Name="AddContent" BeforeTargets="_GetPackageFiles">
126+
<Unzip
127+
SourceFiles="@(_SiteExtensionsReference)"
128+
DestinationFolder="$(SiteExtensionsReferenceLayoutDir)%(Name)"
129+
OverwriteReadOnlyFiles="true"
130+
Condition="'$(DotNetBuild)' == 'true'" />
131+
89132
<ItemGroup>
90133
<!--
91134
The x64 & x86 SiteExtension packages have identical deps.json files. We include only the x64 files to
92135
avoid build warnings.
93136
-->
94137
<ContentFilesToPack
95138
Include="$(NugetPackageRoot)\%(PackageReference.Identity)\%(PackageReference.Version)\content\**\*.*"
96-
Exclude="$(NugetPackageRoot)\Microsoft.AspNetCore.AzureAppServices.SiteExtension.*.x86\**\Microsoft.AspNetCore.AzureAppServices.HostingStartup.deps.json"/>
139+
Exclude="$(NugetPackageRoot)\Microsoft.AspNetCore.AzureAppServices.SiteExtension.*.x86\**\Microsoft.AspNetCore.AzureAppServices.HostingStartup.deps.json" />
140+
141+
<ContentFilesToPack
142+
Include="$(SiteExtensionsReferenceLayoutDir)\%(_SiteExtensionsReference.Name)\content\**\*.*"
143+
Exclude="$(SiteExtensionsReferenceLayoutDir)\Microsoft.AspNetCore.AzureAppServices.SiteExtension.*.x86\**\Microsoft.AspNetCore.AzureAppServices.HostingStartup.deps.json"
144+
Condition="'$(DotNetBuild)' == 'true'" />
97145

98146
<!-- Temporarily skip the common files -->
99147
<FilteredContentFilesToPack Include="@(ContentFilesToPack)" Condition="'%(RecursiveDir)' != ''" />
100148
<None Include="@(FilteredContentFilesToPack)" PackagePath="content\%(RecursiveDir)%(Filename)%(Extension)" Pack="true" />
101149
</ItemGroup>
102150
</Target>
103-
104-
</Project>
151+
</Project>

src/SiteExtensions/LoggingBranch/LB.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@
2424
<ItemGroup>
2525
<HostingStartupRuntimeStoreTargets Include="$(DefaultNetCoreTargetFramework)" Runtime="$(TargetRuntimeIdentifier)" />
2626

27+
<!-- Make sure App.Ref layout is available - not necessary if this is Pass 2 of a VMR build -->
2728
<ProjectReference Include="..\..\Framework\App.Ref\src\Microsoft.AspNetCore.App.Ref.sfxproj"
2829
Private="false"
2930
ReferenceOutputAssembly="false"
30-
SkipGetTargetFrameworkProperties="true" />
31+
SkipGetTargetFrameworkProperties="true"
32+
Condition="'$(DotNetBuildPass)' != '2'" />
3133
</ItemGroup>
3234

3335
<!-- Cannot assume this project and Microsoft.AspNetCore.AzureAppServices.HostingStartup have the same package version. -->
@@ -42,4 +44,6 @@
4244
<HostingStartupPackageReference Include="%(_ResolvedPackageVersionInfo.PackageId)" Version="%(_ResolvedPackageVersionInfo.PackageVersion)" />
4345
</ItemGroup>
4446
</Target>
47+
48+
<Target Name="_VmrBuild" DependsOnTargets="Restore;Build;Pack" Condition=" '$(DotNetBuildPass)' == '2' " />
4549
</Project>

src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@
3434
SkipGetTargetFrameworkProperties="true" />
3535

3636
<!-- Make sure redist folder is built and ready -->
37+
<!-- Not necessary if this is Pass 2 of a VMR build -->
3738
<ProjectReference Include="..\..\Framework\App.Runtime\src\aspnetcore-runtime.proj"
3839
Private="false"
3940
ReferenceOutputAssembly="false"
40-
SkipGetTargetFrameworkProperties="true" />
41+
SkipGetTargetFrameworkProperties="true"
42+
Condition="'$(DotNetBuildPass)' != '2'" />
4143

4244
<NativeProjectReference Include="$(RepoRoot)src\Servers\IIS\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj" Platform="$(TargetArchitecture)" />
4345
<NativeProjectReference Include="$(RepoRoot)src\Servers\IIS\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj" HandlerPath="2.0.0" Platform="$(TargetArchitecture)" />
@@ -56,5 +58,6 @@
5658
<Target Name="CopyFilesToOutputDirectory" />
5759
<Target Name="CoreCompile" />
5860
<Target Name="CreateManifestResourceNames" />
61+
<Target Name="_VmrBuild" DependsOnTargets="Restore;Build;Pack" Condition=" '$(DotNetBuildPass)' == '2' " />
5962

6063
</Project>

0 commit comments

Comments
 (0)