为了我的目的,我将Squirrel逻辑移到了“AfterBuild”事件中的.csproj文件中。现在,每次执行发布构建时,都会构建一个包,并将其与可访问的版本号一起“重新分解”。
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="myAssemblyInfo"/>
</GetAssemblyIdentity>
<Exec Command="D:\Squirrel\nuget pack "D:\Squirrel\Nuspec Files\OurApplication.nuspec" -Version %(myAssemblyInfo.Version)" />
<Exec Command="D:\Squirrel\Squirrel.Windows-1.4.0\squirrel --releasify D:\Jenkins\default\Projects\OurApplication\Windows\OurApplication.%(myAssemblyInfo.Version).nupkg -r D:\Squirrel\Releases\OurApplication" />
</Target>
见https://github.com/Squirrel/Squirrel.Windows/blob/master/docs/using/visual-studio-packaging.md
你是如何在第一时间设置的版本号?您应该将其设置为构建过程的一部分。 –
我们在项目属性中手动增加它,然后在更改后提交版本控制。将它添加到Jenkins构建过程将会绕过版本号凹凸的提交。 – Seraph812
Manularity是邪恶的。通常情况下,你有一个简单的文本文件,其中包含MAJOR MINOR BUILD,并且在构建过程中的早期步骤会读取该文件,然后查询源代码管理以查找REVISION字段中使用的修订版本#并生成版本信息文件。然后可以使用相同的生成版本信息来部署您的软件包。 –