Skip to content

Commit c17908c

Browse files
authored
Merge pull request #836 from natidea/useRidLess
Use RID less targets to obtain compile assets
2 parents 11bcb10 + 4f82958 commit c17908c

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

src/Tasks/Microsoft.NET.Build.Tasks/build/Microsoft.PackageDependencyResolution.targets

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,14 @@ Copyright (c) .NET Foundation. All rights reserved.
304304
</ItemGroup>
305305
</Target>
306306

307+
<Target Name="_ComputeTFMOnlyFileDependencies"
308+
DependsOnTargets="RunResolvePackageDependencies"
309+
Returns="_TFMOnlyFileDependencies">
310+
<ItemGroup>
311+
<_TFMOnlyFileDependencies Include="@(FileDependencies->WithMetadataValue('ParentTarget', '$(NuGetTargetMoniker)'))" />
312+
</ItemGroup>
313+
</Target>
314+
307315
<!--
308316
============================================================
309317
Reference Targets: For populating References based on lock file
@@ -314,10 +322,10 @@ Copyright (c) .NET Foundation. All rights reserved.
314322
-->
315323

316324
<Target Name="_ComputeLockFileReferences"
317-
DependsOnTargets="_ComputeActiveTFMFileDependencies"
325+
DependsOnTargets="_ComputeTFMOnlyFileDependencies"
318326
Returns="ResolvedCompileFileDefinitions">
319327
<ItemGroup>
320-
<_CompileFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'CompileTimeAssembly'))" />
328+
<_CompileFileItems Include="@(_TFMOnlyFileDependencies->WithMetadataValue('FileGroup', 'CompileTimeAssembly'))" />
321329

322330
<!-- Get corresponding file definitions -->
323331
<__CompileFileDefinitions Include="@(FileDefinitions)" Exclude="@(_CompileFileItems)" />
@@ -334,10 +342,10 @@ Copyright (c) .NET Foundation. All rights reserved.
334342

335343
<Target Name="_ComputeLockFileFrameworks"
336344
Condition="'$(DisableLockFileFrameworks)' != 'true'"
337-
DependsOnTargets="_ComputeActiveTFMFileDependencies"
345+
DependsOnTargets="_ComputeTFMOnlyFileDependencies"
338346
Returns="ResolvedFrameworkAssemblies">
339347
<ItemGroup>
340-
<_FrameworkAssemblies Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'FrameworkAssembly'))" />
348+
<_FrameworkAssemblies Include="@(_TFMOnlyFileDependencies->WithMetadataValue('FileGroup', 'FrameworkAssembly'))" />
341349

342350
<ResolvedFrameworkAssemblies Include="%(_FrameworkAssemblies.FrameworkAssembly)">
343351
<Private>false</Private>

test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,5 +555,27 @@ public void It_fails_gracefully_if_targetframework_is_empty()
555555
.And.HaveStdOutContaining("TargetFramework=''") // new deliberate error
556556
.And.NotHaveStdOutContaining(">="); // old error about comparing empty string to version
557557
}
558+
559+
[Fact]
560+
public void It_passes_ridless_target_to_compiler()
561+
{
562+
var testAsset = _testAssetsManager
563+
.CopyTestAsset("AppWithLibrary", "RidlessLib")
564+
.WithSource()
565+
.Restore(relativePath: "TestLibrary");
566+
567+
var libraryProjectDirectory = Path.Combine(testAsset.TestRoot, "TestLibrary");
568+
var fullPathProjectFile = new BuildCommand(Stage0MSBuild, libraryProjectDirectory).FullPathProjectFile;
569+
570+
// compile should still pass with unknown RID because references are always pulled
571+
// from RIDLess target
572+
var buildCommand = Stage0MSBuild.CreateCommandForTarget(
573+
"Compile", fullPathProjectFile, "/p:RuntimeIdentifier=unknownrid");
574+
575+
buildCommand
576+
.Execute()
577+
.Should()
578+
.Pass();
579+
}
558580
}
559581
}

0 commit comments

Comments
 (0)