Ist es normal, dass das vom GitVersion-Alias zurückgegebene Objekt anders ist, wenn ich "OutputType" vorgebe oder diese Einstellung weglasse?Von GitVersion zurückgegebenes Objekt nicht konsistent
Wenn ich den Ausgabetyp angeben, werden die Eigenschaften des zurückgegebenen Objekts sind alle ‚Null‘, aber wenn ich die Einstellung nicht angeben, werden die Eigenschaften auf die erwarteten Werte
Zum Beispiel:
Task("Version")
.Does(() =>
{
var versionInfo = GitVersion(new GitVersionSettings()
{
UpdateAssemblyInfo = true,
OutputType = GitVersionOutput.BuildServer
});
Information("MajorMinorPatch: {0}", versionInfo.MajorMinorPatch);
Information("FullSemVer: {0}", versionInfo.FullSemVer);
Information("InformationalVersion: {0}", versionInfo.InformationalVersion);
Information("LegacySemVer: {0}", versionInfo.LegacySemVer);
Information("Nuget v1 version: {0}", versionInfo.NuGetVersion);
Information("Nuget v2 version: {0}", versionInfo.NuGetVersionV2);
});
die Ausgabe lautet:
MajorMinorPatch: [NULL]
FullSemVer: [NULL]
InformationalVersion: [NULL]
LegacySemVer: [NULL]
Nuget v1 version: [NULL]
Nuget v2 version: [NULL]
Wenn ich meine Aufgabe wie so ändern:
Task("Version")
.Does(() =>
{
var versionInfo = GitVersion(new GitVersionSettings()
{
UpdateAssemblyInfo = false
});
Information("MajorMinorPatch: {0}", versionInfo.MajorMinorPatch);
Information("FullSemVer: {0}", versionInfo.FullSemVer);
Information("InformationalVersion: {0}", versionInfo.InformationalVersion);
Information("LegacySemVer: {0}", versionInfo.LegacySemVer);
Information("Nuget v1 version: {0}", versionInfo.NuGetVersion);
Information("Nuget v2 version: {0}", versionInfo.NuGetVersionV2);
});
Die Ausgabe lautet:
MajorMinorPatch: 0.1.0
FullSemVer: 0.1.0+1
InformationalVersion: 0.1.0+1.Branch.master.Sha.5b2
LegacySemVer: 0.1.0
Nuget v1 version: 0.1.0
Nuget v2 version: 0.1.0
Diese "durch Design" scheint das Prinzip der geringsten Überraschung für mich zu verletzen – Schneider
Und ich stimme nicht zu. Das "Design" hier ist, dass es in Cake wirklich nichts zu machen gibt, ohne dass vorher in GitVersion eine Änderung vorgenommen wurde. Sobald dies erledigt ist, wird Cake die neue Funktionalität nutzen und die Variablen nach Bedarf zurückgeben. –