爲了我的目的,我將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字段中使用的修訂版本#並生成版本信息文件。然後可以使用相同的生成版本信息來部署您的軟件包。 –