Skip to content

Commit 2cd6f8f

Browse files
committed
[REF] Use NuGet VersionFolderPathResolver
1 parent d882b5c commit 2cd6f8f

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,10 @@ public async Task<string> DownloadPackageAsync(PackageId packageId,
131131
string.Format(LocalizableStrings.IsNotFoundInNuGetFeeds, packageId, source.Source));
132132
}
133133

134-
string nupkgPath = downloadFolder == null || !downloadFolder.HasValue
135-
? Path.Combine(_packageInstallDir.Value, packageId.ToString(),
136-
resolvedPackageVersion.ToNormalizedString().ToLowerInvariant(),
137-
$"{packageId}.{resolvedPackageVersion.ToNormalizedString().ToLowerInvariant()}.nupkg")
138-
: Path.Combine(downloadFolder.Value.Value,
139-
$"{packageId}.{resolvedPackageVersion.ToNormalizedString().ToLowerInvariant()}.nupkg");
140-
134+
var pathResolver = new VersionFolderPathResolver(downloadFolder == null || !downloadFolder.HasValue ? _packageInstallDir.Value : downloadFolder.Value.Value);
135+
string nupkgPath = pathResolver.GetPackageFilePath(packageId.ToString(), resolvedPackageVersion);
141136
Directory.CreateDirectory(Path.GetDirectoryName(nupkgPath));
137+
142138
using FileStream destinationStream = File.Create(nupkgPath);
143139
bool success = await ExponentialRetry.ExecuteWithRetryOnFailure(async () => await resource.CopyNupkgToStreamAsync(
144140
packageId.ToString(),
@@ -218,7 +214,10 @@ public async Task<string> GetPackageUrl(PackageId packageId,
218214
SourceRepository repository = GetSourceRepository(source);
219215
if (repository.PackageSource.IsLocal)
220216
{
221-
return Path.Combine(repository.PackageSource.Source, $"{packageId}.{resolvedPackageVersion}.nupkg");
217+
return Path.Combine(
218+
repository.PackageSource.Source,
219+
new VersionFolderPathResolver(repository.PackageSource.Source).GetPackageFileName(packageId.ToString(), resolvedPackageVersion)
220+
);
222221
}
223222

224223
ServiceIndexResourceV3 serviceIndexResource = repository.GetResourceAsync<ServiceIndexResourceV3>().Result;
@@ -307,9 +306,7 @@ await GetPackageMetadataAsync(packageId.ToString(), packageVersion, packagesSour
307306
return (source, packageVersion);
308307
}
309308

310-
private string GetNupkgUrl(string baseUri, PackageId id, NuGetVersion version) =>
311-
baseUri + id.ToString() + "/" + version.ToNormalizedString().ToLowerInvariant() + "/" + id.ToString() +
312-
"." + version.ToNormalizedString().ToLowerInvariant() + ".nupkg";
309+
private string GetNupkgUrl(string baseUri, PackageId id, NuGetVersion version) => new VersionFolderPathResolver(baseUri).GetPackageFilePath(id.ToString(), version);
313310

314311
internal IEnumerable<FilePath> FindAllFilesNeedExecutablePermission(IEnumerable<string> files,
315312
string targetPath)

src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,12 @@ public IToolPackage InstallPackage(PackageLocation packageLocation, PackageId pa
107107
}
108108
NuGetVersion packageVersion = nugetPackageDownloader.GetBestPackageVersionAsync(packageId, versionRange, packageSourceLocation).GetAwaiter().GetResult();
109109

110-
rollbackDirectory = isGlobalTool ? toolDownloadDir.Value: Path.Combine(toolDownloadDir.Value, packageId.ToString(), packageVersion.ToNormalizedString().ToLowerInvariant());
110+
rollbackDirectory = isGlobalTool ? toolDownloadDir.Value: new VersionFolderPathResolver(toolDownloadDir.Value).GetInstallPath(packageId.ToString(), packageVersion);
111111

112112
if (isGlobalTool)
113113
{
114-
NuGetv3LocalRepository nugetPackageRootDirectory = new(Path.Combine(_toolPackageStore.GetRootPackageDirectory(packageId).ToString().Trim('"'), packageVersion.ToNormalizedString().ToLowerInvariant()));
114+
// TODO: NuGetv3LocalRepository already has a VersionFolderPathResolver member, so this can probably be simplified
115+
NuGetv3LocalRepository nugetPackageRootDirectory = new(new VersionFolderPathResolver(_toolPackageStore.Root.Value).GetInstallPath(packageId.ToString(), packageVersion));
115116
var globalPackage = nugetPackageRootDirectory.FindPackage(packageId.ToString(), packageVersion);
116117

117118
if (globalPackage != null)
@@ -303,7 +304,7 @@ private static async Task<NuGetVersion> DownloadAndExtractPackage(
303304
}
304305

305306
// Extract the package
306-
var nupkgDir = Path.Combine(packagesRootPath, packageId.ToString(), version.ToNormalizedString().ToLowerInvariant());
307+
var nupkgDir = new VersionFolderPathResolver(packagesRootPath).GetInstallPath(packageId.ToString(), version);
307308
await nugetPackageDownloader.ExtractPackageAsync(packagePath, new DirectoryPath(nupkgDir));
308309

309310
return version;

src/Cli/dotnet/ToolPackage/ToolPackageInstance.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.DotNet.Tools;
77
using Microsoft.Extensions.EnvironmentAbstractions;
88
using NuGet.Frameworks;
9+
using NuGet.Packaging;
910
using NuGet.ProjectModel;
1011
using NuGet.Versioning;
1112

@@ -85,7 +86,8 @@ public ToolPackageInstance(PackageId id,
8586
_lockFile =
8687
new Lazy<LockFile>(
8788
() => new LockFileFormat().Read(assetsJsonParentDirectory.WithFile(AssetsFileName).Value));
88-
var toolsPackagePath = Path.Combine(PackageDirectory.Value, Id.ToString(), Version.ToNormalizedString().ToLowerInvariant(), "tools");
89+
var installPath = new VersionFolderPathResolver(PackageDirectory.Value).GetInstallPath(Id.ToString(), Version);
90+
var toolsPackagePath = Path.Combine(installPath, "tools");
8991
Frameworks = Directory.GetDirectories(toolsPackagePath)
9092
.Select(path => NuGetFramework.ParseFolder(Path.GetFileName(path)));
9193
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1442,8 +1442,8 @@ private void WritePackageDependenciesDesignTime()
14421442

14431443
foreach (var package in _lockFile.Libraries)
14441444
{
1445-
var packageVersion = package.Version.ToNormalizedString().ToLowerInvariant();
1446-
string packageId = $"{package.Name}/{packageVersion}";
1445+
var packageVersion = package.Version.ToNormalizedString();
1446+
string packageId = $"{package.Name}/{packageVersion.ToLowerInvariant()}";
14471447

14481448
// Find PackageDefinitions that match our allowed item specs
14491449
if (string.IsNullOrEmpty(package.Name) || !allowItemSpecs.Contains(packageId))

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ private void GetPackageAndFileDefinitions()
166166
foreach (var package in LockFile.Libraries)
167167
{
168168
var packageName = package.Name;
169-
var packageVersion = package.Version.ToNormalizedString().ToLowerInvariant();
170-
string packageId = $"{packageName}/{packageVersion}";
169+
var packageVersion = package.Version.ToNormalizedString();
170+
string packageId = $"{packageName}/{packageVersion.ToLowerInvariant()}";
171171
var item = new TaskItem(packageId);
172172
item.SetMetadata(MetadataKeys.Name, packageName);
173173
item.SetMetadata(MetadataKeys.Type, package.Type);

0 commit comments

Comments
 (0)