Я недавно начал использовать GitVersion для создания версий своих сборок, и мне это нравится!
Мне нравится создавать файл .msi
, который отражает версию создаваемого продукта,До сих пор я использовал это в моем .wixproj
файле:
<!-- [TPL] name the output file to include the version from theLocalServer assembly -->
<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="$(SolutionDir)BuildOutput\$(Configuration)\TA.DigitalDomeworks.Server.exe">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersions" />
</GetAssemblyIdentity>
<CreateProperty Value="$(OutputName).%(AssemblyVersions.Version)">
<Output TaskParameter="Value" PropertyName="TargetName" />
</CreateProperty>
<CreateProperty Value="$(TargetName)$(TargetExt)">
<Output TaskParameter="Value" PropertyName="TargetFileName" />
</CreateProperty>
<CreateProperty Value="$(TargetDir)$(TargetFileName)">
<Output TaskParameter="Value" PropertyName="TargetPath" />
</CreateProperty>
</Target>
. В результате получается выходной файл с именем вроде:
TA.DigitalDomeworks.Installer.7.1.0.3.msi
Я нашел это решение от этого ответа , который ссылается на этот пост .7.1.0.3
происходит от версии основной сборки в сборке, которая, в свою очередь, GitVersion управляет версией во время ее собственной сборки.
Однако мне действительно хотелось бы использовать FullSemVer
свойство, которое можно увидеть здесь:
C:\Users\Tim\source\repos\TA.DigitalDomeworks [release/7.1 ↑1 +0 ~1 -0 !]> gitversion
{
"Major":7,
"Minor":1,
"Patch":0,
"PreReleaseTag":"beta.3",
"PreReleaseTagWithDash":"-beta.3",
"PreReleaseLabel":"beta",
"PreReleaseNumber":3,
"BuildMetaData":"",
"BuildMetaDataPadded":"",
"FullBuildMetaData":"Branch.release/7.1.Sha.77fa2c96ed9b0f5ab162d07052ef094e8ccfc8c5",
"MajorMinorPatch":"7.1.0",
"SemVer":"7.1.0-beta.3",
"LegacySemVer":"7.1.0-beta3",
"LegacySemVerPadded":"7.1.0-beta0003",
"AssemblySemVer":"7.1.0.3",
"FullSemVer":"7.1.0-beta.3",
"InformationalVersion":"7.1.0-beta.3+Branch.release/7.1.Sha.77fa2c96ed9b0f5ab162d07052ef094e8ccfc8c5",
"BranchName":"release/7.1",
"Sha":"77fa2c96ed9b0f5ab162d07052ef094e8ccfc8c5",
"NuGetVersionV2":"7.1.0-beta0003",
"NuGetVersion":"7.1.0-beta0003",
"CommitsSinceVersionSource":3,
"CommitsSinceVersionSourcePadded":"0003",
"CommitDate":"2018-09-10"
}
Итак, окончательное имя файла, которое я хотел бы видеть:
TA.DigitalDomeworks.Installer-7.1.0-Beta.3.msi
В документации GitVersion говорится, что мне нужно убедиться, что задача сборки GitVersion.GetVersion
выполнена, после чего я смогу получить полный SemVer из свойства сборкиназывается $(GitVersion_FullSemVer)
.
Однако я не уверен, как этого добиться в проекте WiX, поскольку установка пакета NuGet GitVersionTask
, похоже, ничего не делает (в проектах C # все просто волшебноработает).Если бы я мог дойти до точки, где я могу выполнить задачу GitVersion.GetVersion
, то я думаю, что я вижу свой путь к получению нужного имени выхода.
У кого-нибудь получилось?Или кто-нибудь может посоветовать, как к этому подойти?