Skip to content

Commit f5507b5

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 - honouring metadata left e.g. Microsoft.AspNetCore.Components.WebAssembly.DevServer package unchanged - removed redundant metadata after that confirmation - src/Razor/tools/Microsoft.AspNetCore.Razor.Internal.Transport/ - content of this package unchanged but metadata avoids extra work - added a comment about the extra work - src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/ - adding metadata seems to **break** produced project; will check after an internal 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 b2fe5dd commit f5507b5

File tree

5 files changed

+50
-28
lines changed

5 files changed

+50
-28
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" />

src/DefaultBuilder/src/Microsoft.AspNetCore.csproj

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,25 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<Reference Include="Microsoft.AspNetCore.Diagnostics" PrivateAssets="None" />
14-
<Reference Include="Microsoft.AspNetCore.HostFiltering" PrivateAssets="None" />
15-
<Reference Include="Microsoft.AspNetCore.Hosting" PrivateAssets="None" />
16-
<Reference Include="Microsoft.AspNetCore.Routing" PrivateAssets="None" />
17-
<Reference Include="Microsoft.AspNetCore.Server.IIS" PrivateAssets="None" />
18-
<Reference Include="Microsoft.AspNetCore.Server.IISIntegration" PrivateAssets="None" />
19-
<Reference Include="Microsoft.AspNetCore.Server.Kestrel" PrivateAssets="None" />
20-
<Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" PrivateAssets="None" />
21-
<Reference Include="Microsoft.Extensions.Configuration.FileExtensions" PrivateAssets="None" />
22-
<Reference Include="Microsoft.Extensions.Configuration.Json" PrivateAssets="None" />
23-
<Reference Include="Microsoft.Extensions.Configuration.CommandLine" PrivateAssets="None" />
13+
<Reference Include="Microsoft.AspNetCore.Diagnostics" />
14+
<Reference Include="Microsoft.AspNetCore.HostFiltering" />
15+
<Reference Include="Microsoft.AspNetCore.Hosting" />
16+
<Reference Include="Microsoft.AspNetCore.Routing" />
17+
<Reference Include="Microsoft.AspNetCore.Server.IIS" />
18+
<Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
19+
<Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
20+
<Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
21+
<Reference Include="Microsoft.Extensions.Configuration.FileExtensions" />
22+
<Reference Include="Microsoft.Extensions.Configuration.Json" />
23+
<Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
24+
<!-- Projects using this one should get UserSecrets build assets and those are private by default. -->
2425
<Reference Include="Microsoft.Extensions.Configuration.UserSecrets" PrivateAssets="None" />
25-
<Reference Include="Microsoft.Extensions.FileProviders.Composite" PrivateAssets="None" />
26-
<Reference Include="Microsoft.Extensions.Logging" PrivateAssets="None" />
27-
<Reference Include="Microsoft.Extensions.Logging.Configuration" PrivateAssets="None" />
28-
<Reference Include="Microsoft.Extensions.Logging.Console" PrivateAssets="None" />
29-
<Reference Include="Microsoft.Extensions.Logging.Debug" PrivateAssets="None" />
30-
<Reference Include="Microsoft.Extensions.Logging.EventSource" PrivateAssets="None" />
26+
<Reference Include="Microsoft.Extensions.FileProviders.Composite" />
27+
<Reference Include="Microsoft.Extensions.Logging" />
28+
<Reference Include="Microsoft.Extensions.Logging.Configuration" />
29+
<Reference Include="Microsoft.Extensions.Logging.Console" />
30+
<Reference Include="Microsoft.Extensions.Logging.Debug" />
31+
<Reference Include="Microsoft.Extensions.Logging.EventSource" />
3132
</ItemGroup>
3233

3334
</Project>

src/Razor/tools/Microsoft.Aspnetcore.Razor.Internal.Transport/Microsoft.AspNetCore.Razor.Internal.Transport.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12+
<!-- Don't bother passing the following assemblies to the (ignored) build or copying the files into our bin. -->
1213
<Reference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" ReferenceOutputAssembly="false" />
1314
<Reference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X" ReferenceOutputAssembly="false" />
1415
<Reference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X" ReferenceOutputAssembly="false" />

0 commit comments

Comments
 (0)