Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/NuGet.BuildTasks.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Köplinger <alex.koeplinger@outlook.com>2017-08-14 15:10:11 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2017-08-14 15:10:11 +0300
commit9e04cc7f41899c880807d1d055a24c768670784a (patch)
tree12d079e1a4d078a7d90a3f33a7482e6de8914b6e
parent8d307472ea214f2b59636431f771894dbcba7258 (diff)
parent112685a925e5c0d26fcf9c9006341d4fa4f66515 (diff)
Merge remote-tracking branch 'upstream/dev15.1' into dev15.1dev15.1
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs1
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs28
2 files changed, 18 insertions, 11 deletions
diff --git a/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs b/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs
index 26f04c1..703a648 100644
--- a/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs
+++ b/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs
@@ -34,6 +34,7 @@ namespace Microsoft.NuGet.Build.Tasks
public string Id { get; }
public string Version { get; }
+ public string RelativePackagePath => (string)LibraryObject["path"];
/// <summary>
/// The JSON object from the "targets" section in the project.lock.json for this package.
diff --git a/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs b/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs
index 8acffe3..beceac3 100644
--- a/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs
+++ b/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs
@@ -369,7 +369,7 @@ namespace Microsoft.NuGet.Build.Tasks
if (Path.GetExtension(file).Equals(".dll", StringComparison.OrdinalIgnoreCase))
{
string path;
- if (TryGetFile(package.Id, package.Version, file, out path))
+ if (TryGetFile(package.Id, package.Version, package.RelativePackagePath, file, out path))
{
var analyzer = new TaskItem(path);
@@ -441,16 +441,16 @@ namespace Microsoft.NuGet.Build.Tasks
}
}
- private bool TryGetFile(string packageName, string packageVersion, string file, out string path)
+ private bool TryGetFile(string packageName, string packageVersion, string packageRelativePath, string file, out string path)
{
if (IsFileValid(file, "C#", "VB"))
{
- path = GetPath(packageName, packageVersion, file);
+ path = GetPath(packageName, packageVersion, packageRelativePath, file);
return true;
}
else if (IsFileValid(file, "VB", "C#"))
{
- path = GetPath(packageName, packageVersion, file);
+ path = GetPath(packageName, packageVersion, packageRelativePath, file);
return true;
}
@@ -469,9 +469,9 @@ namespace Microsoft.NuGet.Build.Tasks
!file.Split('/').Any(x => x.Equals(unExpectedLanguage, StringComparison.OrdinalIgnoreCase)));
}
- private string GetPath(string packageName, string packageVersion, string file)
+ private string GetPath(string packageName, string packageVersion, string packageRelativePath, string file)
{
- return Path.Combine(GetNuGetPackagePath(packageName, packageVersion), file.Replace('/', Path.DirectorySeparatorChar));
+ return Path.Combine(GetNuGetPackagePath(packageName, packageVersion, packageRelativePath), file.Replace('/', Path.DirectorySeparatorChar));
}
/// <summary>
@@ -932,17 +932,23 @@ namespace Microsoft.NuGet.Build.Tasks
}
}
- private string GetNuGetPackagePath(string packageId, string packageVersion)
+ private string GetNuGetPackagePath(string packageId, string packageVersion, string packageRelativePath)
{
+ string relativePathToUse = String.IsNullOrEmpty(packageRelativePath)
+ ? Path.Combine(packageId, packageVersion)
+ : packageRelativePath.Replace('/', Path.DirectorySeparatorChar);
+
+ string hashFileName = $"{packageId.ToLowerInvariant()}.{packageVersion.ToLowerInvariant()}.nupkg.sha512";
+
foreach (var packagesFolder in _packageFolders)
{
- string packagePath = Path.Combine(packagesFolder, packageId, packageVersion);
+ string packageFullPath = Path.Combine(packagesFolder, relativePathToUse);
// The proper way to check if a package is available is to look for the hash file, since that's the last
// file written as a part of the restore process. If it's not there, it means something failed part way through.
- if (_fileExists(Path.Combine(packagePath, $"{packageId}.{packageVersion}.nupkg.sha512")))
+ if (_fileExists(Path.Combine(packageFullPath, hashFileName)))
{
- return packagePath;
+ return packageFullPath;
}
}
@@ -972,7 +978,7 @@ namespace Microsoft.NuGet.Build.Tasks
}
else
{
- fullPackagePathGenerator = () => GetNuGetPackagePath(id, version);
+ fullPackagePathGenerator = () => GetNuGetPackagePath(id, version, (string)libraryObject["path"]);
}
yield return new NuGetPackageObject(id, version, fullPackagePathGenerator, (JObject)package.Value, libraryObject);