Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions NuGetPack.UnitTests/NuGetPackTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ public void TestGetDependenciesViaReferenceOuter1()

XAttribute attribute;
var results = creator.GetElements(
nuspecFolder, nuProj1Csproj, isDebugVariable, true, false, null, out attribute);
nuspecFolder, nuProj1Csproj, isDebugVariable, true, false, null,null, out attribute);

var dependencies = results.Where(r => r.ElementType == ElementType.NuGetDependency)
.Select(r => r.Element).ToList();
Expand All @@ -321,7 +321,7 @@ public void TestGetDependenciesViaReferenceOuter2()

XAttribute attribute;
var results = creator.GetElements(
nuspecFolder, nuProj2Csproj, isDebugVariable, true, false, null, out attribute);
nuspecFolder, nuProj2Csproj, isDebugVariable, true, false, null,null, out attribute);

var dependencies = results.Where(r => r.ElementType == ElementType.NuGetDependency)
.Select(r => r.Element).ToList();
Expand All @@ -335,7 +335,7 @@ public void TestGetInternalDependencies1()
var creator = new NuspecCreatorOldCsProj();

var results = creator.GetInternalDependencies(
proj5Csproj, isDebugVariable, Path.GetDirectoryName(proj5Dll), null);
proj5Csproj, isDebugVariable, Path.GetDirectoryName(proj5Dll), null,null);

var dependencies = results.Where(r => r.ElementType == ElementType.NuGetDependency)
.Select(r => r.Element).ToList();
Expand All @@ -355,7 +355,7 @@ public void TestGetInternalDependencies1_OverridePreReleaseEmpty()
var creator = new NuspecCreatorOldCsProj();

var results = creator.GetInternalDependencies(
proj5Csproj, isDebugVariable, Path.GetDirectoryName(proj5Dll), String.Empty);
proj5Csproj, isDebugVariable, Path.GetDirectoryName(proj5Dll), String.Empty, String.Empty);

var dependencies = results.Where(r => r.ElementType == ElementType.NuGetDependency)
.Select(r => r.Element).ToList();
Expand All @@ -373,7 +373,7 @@ public void TestGetInternalDependencies1_OverridePreReleaseAlpha102()
var creator = new NuspecCreatorOldCsProj();

var results = creator.GetInternalDependencies(
proj5Csproj, isDebugVariable, Path.GetDirectoryName(proj5Dll), "alpha102");
proj5Csproj, isDebugVariable, Path.GetDirectoryName(proj5Dll), "alpha102",null);

var dependencies = results.Where(r => r.ElementType == ElementType.NuGetDependency)
.Select(r => r.Element).ToList();
Expand Down Expand Up @@ -542,7 +542,7 @@ public void TestGetPackage1Files()

XAttribute attribute;
var results = creator.GetElements(
Path.GetDirectoryName(nuProj1Dll), nuProj1Csproj, isDebugVariable, true, false, null, out attribute);
Path.GetDirectoryName(nuProj1Dll), nuProj1Csproj, isDebugVariable, true, false, null,null, out attribute);

LinqAssert.Count(results, 22);

Expand Down Expand Up @@ -609,7 +609,7 @@ public void TestGetPackage2Files()

XAttribute attribute;
var results = creator.GetElements(
Path.GetDirectoryName(nuProj2Dll), nuProj2Csproj, isDebugVariable, true, false, null, out attribute);
Path.GetDirectoryName(nuProj2Dll), nuProj2Csproj, isDebugVariable, true, false, null,null, out attribute);

LinqAssert.Count(results, 6);

Expand Down Expand Up @@ -642,7 +642,7 @@ public void TestGetPackage2Files_NoSource()

XAttribute attribute;
var results = creator.GetElements(
Path.GetDirectoryName(nuProj2Dll), nuProj2Csproj, isDebugVariable, false, false, null, out attribute);
Path.GetDirectoryName(nuProj2Dll), nuProj2Csproj, isDebugVariable, false, false, null,null, out attribute);

LinqAssert.Count(results, 4);

Expand Down Expand Up @@ -670,7 +670,7 @@ public void TestGetPackage3Files()

XAttribute attribute;
var results = creator.GetElements(
Path.GetDirectoryName(nuProj3Dll), nuProj3Csproj, isDebugVariable, true, false, null, out attribute);
Path.GetDirectoryName(nuProj3Dll), nuProj3Csproj, isDebugVariable, true, false, null,null, out attribute);

LinqAssert.Count(results, 13);

Expand Down Expand Up @@ -721,7 +721,7 @@ public void TestGetLibrary4Files()

XAttribute attribute;
var results = creator.GetElements(
testRunDir, proj4Csproj, isDebugVariable, true, true, null, out attribute);
testRunDir, proj4Csproj, isDebugVariable, true, true, null,null, out attribute);

LinqAssert.Count(results, 18);

Expand Down Expand Up @@ -781,7 +781,7 @@ public void TestGetLibrary5Files()

XAttribute attribute;
var results = creator.GetElements(
testRunDir, proj5Csproj, isDebugVariable, true, true, null, out attribute);
testRunDir, proj5Csproj, isDebugVariable, true, true, null,null, out attribute);

LinqAssert.Count(results, 15);

Expand Down Expand Up @@ -980,7 +980,7 @@ public void TestGetFiles()

XAttribute attribute;
var results = creator.GetElements(
nuspecFolder, nuProj1Csproj, isDebugVariable, true, false, null, out attribute);
nuspecFolder, nuProj1Csproj, isDebugVariable, true, false, null,null, out attribute);

Assert.AreNotEqual(0, results.Count());
var files = results.Where(el =>
Expand All @@ -1001,7 +1001,7 @@ public void TestGetFilesIncludingVersions()

XAttribute attribute;
var results = creator.GetElements(
nuspecFolder, nuProj3Csproj, isDebugVariable, true, false, null, out attribute);
nuspecFolder, nuProj3Csproj, isDebugVariable, true, false, null,null, out attribute);

Assert.AreNotEqual(0, results.Count);

Expand Down
77 changes: 44 additions & 33 deletions NuGetPack/NuspecCreatorBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ public abstract partial class NuspecCreatorBase
public void CreatePackage(
string projectPath, string assemblyPath, bool isDebug,
bool doCreatePkg = true, bool doIncludeCurrentProj = false,
string preReleaseSuffixOverride = null)
string preReleaseSuffixOverride = null, string FinalVersion = null)
{
Console.WriteLine("Creating nuspec file");

NuGetPackConfig config;
var doc = CreateNuspec(
projectPath, assemblyPath, isDebug, doIncludeCurrentProj, preReleaseSuffixOverride,
projectPath, assemblyPath, isDebug, doIncludeCurrentProj, preReleaseSuffixOverride,FinalVersion,
out config);
var nuspecPath = Path.ChangeExtension(assemblyPath, ".nuspec");

Expand Down Expand Up @@ -135,16 +135,16 @@ public void PublishPackage(string packagePath)

public XDocument CreateNuspec(
string projectPath, string assemblyPath, bool isDebug, bool doIncludeCurrentProj = false,
string preReleaseSuffixOverride = null)
string preReleaseSuffixOverride = null, string FinalVersion = null)
{
return CreateNuspec(
projectPath, assemblyPath, isDebug, doIncludeCurrentProj, preReleaseSuffixOverride,
projectPath, assemblyPath, isDebug, doIncludeCurrentProj, preReleaseSuffixOverride,FinalVersion,
out NuGetPackConfig config);
}

public XDocument CreateNuspec(
string projectPath, string assemblyPath, bool isDebug, bool doIncludeCurrentProj,
string preReleaseSuffixOverride,
string preReleaseSuffixOverride,string FinalVersion,
out NuGetPackConfig config)
{
if (projectPath == null)
Expand All @@ -162,7 +162,7 @@ public XDocument CreateNuspec(
packageName = packageName.Substring(0, packageName.Length - nugetExtension.Length);

var fileVersion = FileVersionInfo.GetVersionInfo(assemblyPath);
var version = GetVersion(fileVersion, preReleaseSuffixOverride);
var version = GetVersion(fileVersion, preReleaseSuffixOverride,FinalVersion);

var owners = fileVersion.CompanyName;

Expand Down Expand Up @@ -243,7 +243,7 @@ public XDocument CreateNuspec(
packageName, version, owners, authors, shortSummary,
longDescription, releaseNotes, licenseUrl, projectUrl, iconUrl, copyright, keywords, nuspecPath, projectPath,
isDebug, doAddFrameworkReferences, doIncludeSources,
doIncludeCurrentProj, preReleaseSuffixOverride);
doIncludeCurrentProj, preReleaseSuffixOverride,FinalVersion);

return doc;
}
Expand All @@ -253,33 +253,40 @@ public XDocument CreateNuspec(
/// </summary>
/// <param name="fileVersion"></param>
/// <param name="preReleaseSuffixOverride"></param>
/// <param name="FinalVersion"></param>
/// <returns></returns>
private string GetVersion(FileVersionInfo fileVersion, string preReleaseSuffixOverride)
private string GetVersion(FileVersionInfo fileVersion, string preReleaseSuffixOverride, string FinalVersion)
{
var version = fileVersion.FileMajorPart + "." + fileVersion.FileMinorPart + "." + fileVersion.FileBuildPart;
if(FinalVersion == null)
{
var version = fileVersion.FileMajorPart + "." + fileVersion.FileMinorPart + "." + fileVersion.FileBuildPart;

if (fileVersion.FilePrivatePart != 0)
version += "." + fileVersion.FilePrivatePart;
if (fileVersion.FilePrivatePart != 0)
version += "." + fileVersion.FilePrivatePart;

if (preReleaseSuffixOverride == null)
{
var fileVersionParts = fileVersion.ProductVersion.Split(new[] { '-' }, StringSplitOptions.None);
if (fileVersionParts.Length > 1)
if (preReleaseSuffixOverride == null)
{
var preReleaseName = string.Join("-", fileVersionParts.Skip(1));
var fileVersionParts = fileVersion.ProductVersion.Split(new[] { '-' }, StringSplitOptions.None);
if (fileVersionParts.Length > 1)
{
var preReleaseName = string.Join("-", fileVersionParts.Skip(1));

if (string.IsNullOrWhiteSpace(preReleaseName))
preReleaseName = "PreRelease";
if (string.IsNullOrWhiteSpace(preReleaseName))
preReleaseName = "PreRelease";

version += "-" + preReleaseName;
version += "-" + preReleaseName;
}
}
else if (preReleaseSuffixOverride != string.Empty)
{
version += "-" + preReleaseSuffixOverride;
}

return version;
}
else if (preReleaseSuffixOverride != string.Empty)
{
version += "-" + preReleaseSuffixOverride;
else{
return FinalVersion;
}

return version;
}

public XDocument CreateNuspec(
Expand All @@ -301,13 +308,14 @@ public XDocument CreateNuspec(
bool doAddFrameworkReferences,
bool doIncludeSources,
bool doIncludeCurrentProj,
string preReleaseSuffixOverride)
string preReleaseSuffixOverride,
string FinalVersion)
{
var nuspecFolder = Path.GetDirectoryName(nuspecPath);

var elements = GetElements(
nuspecFolder, projectPath, isDebug, doIncludeSources, doIncludeCurrentProj,
preReleaseSuffixOverride,
preReleaseSuffixOverride,FinalVersion,
out var dependenciesAttribute);


Expand All @@ -327,7 +335,7 @@ public XDocument CreateNuspec(
dependencies.Add(d);
}

var dependenciesElemnt = GetDependenciesForNewCsProj(projectPath, dependencies, preReleaseSuffixOverride);
var dependenciesElemnt = GetDependenciesForNewCsProj(projectPath, dependencies, preReleaseSuffixOverride,FinalVersion);

var metadataElement = new XElement("metadata",
new XElement("id", packageName),
Expand Down Expand Up @@ -377,7 +385,7 @@ public XDocument CreateNuspec(
return doc;
}

protected abstract XElement GetDependenciesForNewCsProj(string projectPath, XElement dependencies, string preReleaseSuffixOverride);
protected abstract XElement GetDependenciesForNewCsProj(string projectPath, XElement dependencies, string preReleaseSuffixOverride,string FinalVersion);

public abstract List<DependencyInfo> GetDependencies(string projectPath, out XAttribute dependenciesAttribute);

Expand Down Expand Up @@ -426,11 +434,12 @@ public List<DependencyInfo> GetDependencies(string packagesFile)
/// <param name="isDebug"></param>
/// <param name="buildMachineBinFolder"></param>
/// <param name="preReleaseSuffixOverride"></param>
/// <param name="FinalVersion"></param>
/// <param name="isProjNetStandard"></param>
/// <returns></returns>
public List<DependencyInfo> GetInternalDependencies(
string projectPath, bool isDebug, string buildMachineBinFolder,
string preReleaseSuffixOverride)
string preReleaseSuffixOverride, string FinalVersion)
{
var references = GetReferences(projectPath, true);
var projectFolder = Path.GetDirectoryName(projectPath);
Expand All @@ -450,7 +459,7 @@ public List<DependencyInfo> GetInternalDependencies(
DebugOut(() => "assemblyPath = " + assemblyPath);

var fileVersion = FileVersionInfo.GetVersionInfo(assemblyPath);
var referenceVersion = GetVersion(fileVersion, preReleaseSuffixOverride);
var referenceVersion = GetVersion(fileVersion, preReleaseSuffixOverride,FinalVersion);

results.Add(
new DependencyInfo(
Expand Down Expand Up @@ -503,16 +512,18 @@ protected void DebugOut(Func<string> getText){}
/// <param name="doIncludeSources">If true, includes source files in NuSpec</param>
/// <param name="doIncludeCurrentProj">
/// <param name="preReleaseSuffixOverride"></param>
/// <param name="FinalVersion"></param>
/// <param name="dependenciesAttribute"></param>
/// If true, treats given project as regular project,
/// if not treats it as a NuGet definition project only - does not take binaries or source from project
/// </param>
/// <param name="preReleaseSuffixOverride"></param>
/// <param name="FinalVersion"></param>
/// <param name="dependenciesAttribute"></param>
/// <returns>Elements for NuSpec</returns>
public List<DependencyInfo> GetElements(
string nuspecFolder, string projectPath, bool isDebug, bool doIncludeSources,
bool doIncludeCurrentProj, string preReleaseSuffixOverride,
bool doIncludeCurrentProj, string preReleaseSuffixOverride,string FinalVersion,
out XAttribute dependenciesAttribute)
{
if (nuspecFolder == null)
Expand Down Expand Up @@ -548,7 +559,7 @@ public List<DependencyInfo> GetElements(

if (doIncludeCurrentProj)
{
IncludeCurrentProject(nuspecFolder, projectPath, isDebug, doIncludeSources, preReleaseSuffixOverride, result, projectFolder);
IncludeCurrentProject(nuspecFolder, projectPath, isDebug, doIncludeSources, preReleaseSuffixOverride,FinalVersion, result, projectFolder);
}

bool? referencesContainNuGetPackConfig =
Expand Down Expand Up @@ -595,7 +606,7 @@ public List<DependencyInfo> GetElements(
}

protected abstract void IncludeCurrentProject(string nuspecFolder, string projectPath, bool isDebug,
bool doIncludeSources, string preReleaseSuffixOverride, List<DependencyInfo> result, string projectFolder);
bool doIncludeSources, string preReleaseSuffixOverride,string FinalVersion, List<DependencyInfo> result, string projectFolder);

#region NuGet Project Parsing

Expand Down
4 changes: 2 additions & 2 deletions NuGetPack/NuspecCreatorHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public static class NuspecCreatorHelper
public static void CreatePackages(
string binFolder, string solutionFolder, bool isDebug,
bool doCreatePkg = true, bool doIncludeCurrentProj = false,
string preReleaseSuffixOverride = null)
string preReleaseSuffixOverride = null, string FinalVersion = null)
{
var projects = new LinkedList<string>();
FindProjects(solutionFolder, projects);
Expand All @@ -29,7 +29,7 @@ public static void CreatePackages(

creator.CreatePackage(
projectPath, assemblyPath, isDebug, doCreatePkg, doIncludeCurrentProj,
preReleaseSuffixOverride);
preReleaseSuffixOverride,FinalVersion);
}
}

Expand Down
8 changes: 4 additions & 4 deletions NuGetPack/NuspecCreatorNewCsProj.cs
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ void AddConditionalPackages(List<XElement> conditionalPackages, XElement res)
}
}

private List<XElement> GetProjectDependenciesNetStandard(string projectPath, string preReleaseSuffixOverride)
private List<XElement> GetProjectDependenciesNetStandard(string projectPath, string preReleaseSuffixOverride, string FinalVersion)
{
var result = new List<XElement>();

Expand All @@ -255,9 +255,9 @@ private List<XElement> GetProjectDependenciesNetStandard(string projectPath, str
return result;
}

protected override XElement GetDependenciesForNewCsProj(string projectPath, XElement dependencies, string preReleaseSuffixOverride)
protected override XElement GetDependenciesForNewCsProj(string projectPath, XElement dependencies, string preReleaseSuffixOverride,string FinalVersion)
{
var projDependencies = GetProjectDependenciesNetStandard(projectPath, preReleaseSuffixOverride);
var projDependencies = GetProjectDependenciesNetStandard(projectPath, preReleaseSuffixOverride,FinalVersion);
var result = GetPackageDependenciesNetStandard(projectPath, projDependencies);

return result;
Expand Down Expand Up @@ -530,7 +530,7 @@ protected override IEnumerable<XElement> GetProjectReference(XElement proj, XNam
}

protected override void IncludeCurrentProject(string nuspecFolder, string projectPath, bool isDebug,
bool doIncludeSources, string preReleaseSuffixOverride, List<DependencyInfo> result, string projectFolder)
bool doIncludeSources, string preReleaseSuffixOverride,string FinalVersion, List<DependencyInfo> result, string projectFolder)
{
}

Expand Down
Loading