我最近开始使用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
构建任务,之后我应该能够从一个叫做$(GitVersion_FullSemVer)
的构建属性中获取完整的SemVer。
但是,我不确定如何在WiX项目中实现这一点,因为安装GitVersionTask
NuGet包似乎没有任何作用(在C#项目中,一切都会神奇地运行)。如果我能够执行GitVersion.GetVersion
任务,那么我认为我可以清楚地看到我想要的输出名称。
有人成功实现了吗?或者有人能够提供如何解决此问题的建议吗?