Skip to content

Commit d7a7d93

Browse files
authored
Multi-RID tool packages usability tweaks (#49288)
2 parents ef93823 + 227f6b4 commit d7a7d93

20 files changed

+309
-400
lines changed

src/Cli/dotnet/ToolPackage/ToolConfigurationDeserialization/DotNetCliToolRuntimeIdentifierPackage.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,4 @@ public class DotNetCliToolRuntimeIdentifierPackage
1616

1717
[XmlAttribute]
1818
public string? Id { get; set; }
19-
20-
[XmlAttribute]
21-
public string? Version { get; set; }
2219
}

src/Cli/dotnet/ToolPackage/ToolConfigurationDeserializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static ToolConfiguration Deserialize(string pathToXml, IFileSystem fileSy
6767
dotNetCliTool.Commands[0].Runner));
6868
}
6969

70-
var ridSpecificPackages = dotNetCliTool.RuntimeIdentifierPackages?.ToDictionary(p => p.RuntimeIdentifier, p => new PackageIdentity(p.Id, new NuGet.Versioning.NuGetVersion(p.Version)))
70+
var ridSpecificPackages = dotNetCliTool.RuntimeIdentifierPackages?.ToDictionary(p => p.RuntimeIdentifier, p => new PackageIdentity(p.Id, null))
7171
.AsReadOnly();
7272

7373
// Also error out if there are no RID-specific packages and the runner is empty

src/Cli/dotnet/ToolPackage/ToolPackageDownloaderBase.cs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -276,15 +276,14 @@ protected virtual void DownloadTool(
276276
CreateAssetFile(packageId, packageVersion, packageDownloadDir, Path.Combine(assetFileDirectory.Value, ToolPackageInstance.AssetsFileName), _runtimeJsonPath, targetFramework);
277277

278278
// Also download RID-specific package if needed
279-
var ridSpecificPackage = ResolveRidSpecificPackage(packageId, packageVersion, packageDownloadDir, assetFileDirectory);
280-
if (ridSpecificPackage != null)
279+
if (ResolveRidSpecificPackage(packageId, packageVersion, packageDownloadDir, assetFileDirectory) is PackageId ridSpecificPackage)
281280
{
282-
if (!IsPackageInstalled(new PackageId(ridSpecificPackage.Id), ridSpecificPackage.Version, packageDownloadDir.Value))
281+
if (!IsPackageInstalled(ridSpecificPackage, packageVersion, packageDownloadDir.Value))
283282
{
284-
DownloadAndExtractPackage(new PackageId(ridSpecificPackage.Id), nugetPackageDownloader, packageDownloadDir.Value, ridSpecificPackage.Version, packageSourceLocation, includeUnlisted: true);
283+
DownloadAndExtractPackage(ridSpecificPackage, nugetPackageDownloader, packageDownloadDir.Value, packageVersion, packageSourceLocation, includeUnlisted: true);
285284
}
286285

287-
CreateAssetFile(new PackageId(ridSpecificPackage.Id), ridSpecificPackage.Version, packageDownloadDir, Path.Combine(assetFileDirectory.Value, ToolPackageInstance.RidSpecificPackageAssetsFileName), _runtimeJsonPath, targetFramework);
286+
CreateAssetFile(ridSpecificPackage, packageVersion, packageDownloadDir, Path.Combine(assetFileDirectory.Value, ToolPackageInstance.RidSpecificPackageAssetsFileName), _runtimeJsonPath, targetFramework);
288287
}
289288
}
290289

@@ -301,15 +300,14 @@ public bool TryGetDownloadedTool(
301300
}
302301
CreateAssetFile(packageId, packageVersion, _localToolDownloadDir, Path.Combine(_localToolAssetDir.Value, ToolPackageInstance.AssetsFileName), _runtimeJsonPath, targetFramework);
303302

304-
var ridSpecificPackage = ResolveRidSpecificPackage(packageId, packageVersion, _localToolDownloadDir, _localToolAssetDir);
305-
if (ridSpecificPackage != null)
303+
if (ResolveRidSpecificPackage(packageId, packageVersion, _localToolDownloadDir, _localToolAssetDir) is PackageId ridSpecificPackage)
306304
{
307-
if (!IsPackageInstalled(new PackageId(ridSpecificPackage.Id), ridSpecificPackage.Version, _localToolDownloadDir.Value))
305+
if (!IsPackageInstalled(ridSpecificPackage, packageVersion, _localToolDownloadDir.Value))
308306
{
309307
toolPackage = null;
310308
return false;
311309
}
312-
CreateAssetFile(new PackageId(ridSpecificPackage.Id), ridSpecificPackage.Version, _localToolDownloadDir,
310+
CreateAssetFile(ridSpecificPackage, packageVersion, _localToolDownloadDir,
313311
Path.Combine(_localToolAssetDir.Value, ToolPackageInstance.RidSpecificPackageAssetsFileName), _runtimeJsonPath, targetFramework);
314312
}
315313

@@ -322,7 +320,7 @@ public bool TryGetDownloadedTool(
322320

323321
}
324322

325-
private PackageIdentity? ResolveRidSpecificPackage(PackageId packageId,
323+
private PackageId? ResolveRidSpecificPackage(PackageId packageId,
326324
NuGetVersion packageVersion,
327325
DirectoryPath packageDownloadDir,
328326
DirectoryPath assetFileDirectory)
@@ -341,7 +339,11 @@ public bool TryGetDownloadedTool(
341339

342340
var resolvedPackage = toolConfiguration.RidSpecificPackages[bestRuntimeIdentifier];
343341

344-
return resolvedPackage;
342+
if (resolvedPackage is PackageIdentity p)
343+
{
344+
return new PackageId(p.Id);
345+
}
346+
return null;
345347
}
346348

347349
return null;

src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenAPublishRelativePathToPackPackagePath.cs

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/Tasks/Microsoft.NET.Build.Tasks/GenerateToolsSettingsFile.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,6 @@ internal static XDocument GenerateDocument(string entryPointRelativePath, string
7979
string ridPackageId = toolPackageId + "." + toolPackageRuntimeIdentifier;
8080
packageNode.Add(new XAttribute("Id", ridPackageId));
8181

82-
string ridPackageVersion = runtimeIdentifierPackage.GetMetadata("Version");
83-
if (string.IsNullOrEmpty(ridPackageVersion))
84-
{
85-
ridPackageVersion = toolPackageVersion;
86-
}
87-
packageNode.Add(new XAttribute("Version", ridPackageVersion));
88-
8982
runtimeIdentifierPackagesNode.Add(packageNode);
9083
}
9184
}

src/Tasks/Microsoft.NET.Build.Tasks/RemoveTargetFromList.cs

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/Tasks/Microsoft.NET.Build.Tasks/ResolveToolPackagePaths.cs

Lines changed: 0 additions & 120 deletions
This file was deleted.

src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.props

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,5 @@ Copyright (c) .NET Foundation. All rights reserved.
1212
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
1313

1414
<PropertyGroup>
15-
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackTool</TargetsForTfmSpecificContentInPackage>
1615
</PropertyGroup>
1716
</Project>

0 commit comments

Comments
 (0)