2016-05-20 23 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