2016-05-20 25 views
0

我想在Jenkins中自動完成一項工作來構建和部署Visual Studio解決方案。我們已經可以讓詹金斯建立這個項目。我創建了一個批處理文件,Jenkins在部署Squirrel軟件包的項目構建後運行,但是我已經參數化了批處理文件以及Jenkins作業,這意味着我每次運行作業時都仍然手動鍵入版本號。我們需要從項目中提取版本號,以便它可以用作Squirrel批處理文件中的參數。從命令行AssemblyInfo.cs中獲取AssemblyVersion編號

+0

你是如何在第一時間設置的版本號?您應該將其設置爲構建過程的一部分。 –

+0

我們在項目屬性中手動增加它,然後在更改後提交版本控制。將它添加到Jenkins構建過程將會繞過版本號凹凸的提交。 – Seraph812

+0

Manularity是邪惡的。通常情況下,你有一個簡單的文本文件,其中包含MAJOR MINOR BUILD,並且在構建過程中的早期步驟會讀取該文件,然後查詢源代碼管理以查找REVISION字段中使用的修訂版本#並生成版本信息文件。然後可以使用相同的生成版本信息來部署您的軟件包。 –

回答

0

爲了我的目的,我將Squirrel邏輯移到了「AfterBuild」事件中的.csproj文件中。現在,每次執行發佈構建時,都會構建一個包,並將其與可訪問的版本號一起「重新分解」。

<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'"> 
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> 
     <Output TaskParameter="Assemblies" ItemName="myAssemblyInfo"/> 
    </GetAssemblyIdentity> 
    <Exec Command="D:\Squirrel\nuget pack &quot;D:\Squirrel\Nuspec Files\OurApplication.nuspec&quot; -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