Skip to content

Commit 95dc49a

Browse files
committed
Keep @(Reference) metadata when creating @(ProjectReference) items
- #20818 - fix e.g. references to Microsoft.Web.Xdt.Extensions in our packages Projects of particular interest: - src/DefaultBuilder/src/Microsoft.AspNetCore.csproj - content of e.g. Microsoft.AspNetCore.Components.WebAssembly.DevServer package unchanged - src/Razor/tools/Microsoft.AspNetCore.Razor.Internal.Transport/ - content of this package unchanged - src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/ - adding metadata seems to **break** produced project; will check after CI build Separately, up the timeout in the `<DownloadFile />` task - hit repeated timeouts downloading dotnet-runtime-5.0.0-rc.1.20370.4-win-x64.zip nit: remove dupe `@(Reference)` item in Microsoft.AspNetCore.Components.WebAssembly.DevServer.csproj
1 parent cf72817 commit 95dc49a

File tree

3 files changed

+31
-11
lines changed

3 files changed

+31
-11
lines changed

eng/targets/ResolveReferences.targets

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,6 @@
7676
<_AllowedExplicitPackageReference Include="FSharp.Core" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
7777
<_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
7878

79-
<_UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
80-
8179
<_CompilationOnlyReference Condition="'$(TargetFramework)' == 'netstandard2.0'"
8280
Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))" />
8381

@@ -91,14 +89,37 @@
9189
@(Reference->WithMetadataValue('IsSharedSource', 'true'));
9290
@(Reference->WithMetadataValue('PrivateAssets', 'All'))" />
9391
<_OriginalReferences Include="@(Reference)" />
92+
</ItemGroup>
9493

95-
<!--
96-
Turn Reference items into a ProjectReference when UseProjectReferences is true.
97-
Order matters. This comes before package resolution because projects should be used when possible instead of packages.
94+
<!--
95+
Turn Reference items into a ProjectReference when UseProjectReferences is true. Intersect the two item groups
96+
using the Exclude...Exclude approach because nothing else seems to work outside a target. Order matters; this
97+
comes before package resolution because projects should be used when possible instead of packages.
9898
-->
99-
<_ProjectReferenceByAssemblyName Condition="'$(UseProjectReferences)' == 'true'"
100-
Include="@(ProjectReferenceProvider)"
101-
Exclude="@(_UnusedProjectReferenceProvider)" />
99+
<ItemGroup Condition=" '$(EnableCustomReferenceResolution)' == 'true' AND '$(UseProjectReferences)' == 'true' ">
100+
<!-- _UnusedProjectReferenceProvider may be a fairly big item group; don't log removals unnecessarily. -->
101+
<_UnusedProjectReferenceProvider Remove="@(_UnusedProjectReferenceProvider)" />
102+
<_ProjectReferenceByAssemblyName Remove="@(_ProjectReferenceByAssemblyName)" />
103+
104+
<_UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
105+
<_ProjectReferenceByAssemblyName Include="@(ProjectReferenceProvider)" Exclude="@(_UnusedProjectReferenceProvider)" />
106+
107+
<!-- Yes, this is doing multiple additional intersections to get possible Reference metadata. -->
108+
<_ProjectReferenceByAssemblyName Update="@(Reference->HasMetadata('ExcludeAssets'))">
109+
<ExcludeAssets>%(Reference.ExcludeAssets)</ExcludeAssets>
110+
</_ProjectReferenceByAssemblyName>
111+
<_ProjectReferenceByAssemblyName Update="@(Reference->HasMetadata('IncludeAssets'))">
112+
<IncludeAssets>%(Reference.IncludeAssets)</IncludeAssets>
113+
</_ProjectReferenceByAssemblyName>
114+
<_ProjectReferenceByAssemblyName Update="@(Reference->HasMetadata('Private'))">
115+
<Private>%(Reference.Private)</Private>
116+
</_ProjectReferenceByAssemblyName>
117+
<_ProjectReferenceByAssemblyName Update="@(Reference->HasMetadata('PrivateAssets'))">
118+
<PrivateAssets>%(Reference.PrivateAssets)</PrivateAssets>
119+
</_ProjectReferenceByAssemblyName>
120+
<_ProjectReferenceByAssemblyName Update="@(Reference->HasMetadata('ReferenceOutputAssembly'))">
121+
<ReferenceOutputAssembly>%(Reference.ReferenceOutputAssembly)</ReferenceOutputAssembly>
122+
</_ProjectReferenceByAssemblyName>
102123

103124
<ProjectReference Include="@(_ProjectReferenceByAssemblyName->'%(ProjectPath)')" />
104125
<Reference Remove="@(_ProjectReferenceByAssemblyName)" />

eng/tools/RepoTasks/DownloadFile.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private async System.Threading.Tasks.Task<bool> ExecuteAsync()
100100

101101
Log.LogMessage(MessageImportance.High, $"Attempting download '{source}' to '{target}'");
102102

103-
using (var httpClient = new HttpClient())
103+
using (var httpClient = new HttpClient { Timeout = TimeSpan.FromMinutes(5) })
104104
{
105105
for (int retryNumber = 0; retryNumber < MaxRetries; retryNumber++)
106106
{
@@ -146,4 +146,4 @@ private async System.Threading.Tasks.Task<bool> ExecuteAsync()
146146
return null;
147147
}
148148
}
149-
}
149+
}

src/Components/WebAssembly/DevServer/src/Microsoft.AspNetCore.Components.WebAssembly.DevServer.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
<Reference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" />
2020
<Reference Include="Microsoft.AspNetCore.Components.Server" />
2121
<Reference Include="Microsoft.AspNetCore.ResponseCompression" />
22-
<Reference Include="Microsoft.AspNetCore" />
2322

2423
<Compile Include="$(SharedSourceRoot)CommandLineUtils\**\*.cs" />
2524
<Reference Include="Microsoft.Extensions.Hosting" />

0 commit comments

Comments
 (0)