我目前正在使用Jenkins“Version Number Plug-In”为构建版本设置环境变量。这在jenkins中工作正常,但我需要一种方法将其传递给MSBuild,以便更新exe和dll的版本号。我尝试了下面的配置,但它没有更新构建版本
答案 0 :(得分:5)
环境变量名称应写为,不带百分号('%'),如下所示:
VERSION
除此之外,我认为你很高兴。
也可以考虑改变
${BUILDS_ALL_TIME}
到
${BUILDS_ALL_TIME, XX}
(这将使用前导零强制执行两位数的构建号码)
答案 1 :(得分:2)
这是一个MSBuild目标,用Jenkins的SVN_REVISION变量替换文件GlobalAssemblyInfo.cs中的修订号。
我们有一个多项目解决方案,其中每个项目引用相同的GlobalAssemblyInfo以获取常见信息(如版本)。修改它以使其适合您的设置。
通过具有Exists条件,目标在未安装MSBuildCommunityTasks的开发人员计算机上执行。 在这些情况下,GlobalAssemblyInfo.cs中的版本号保持不变。
<Target Name="InjectSVNRevision" Condition="Exists('$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets')">
<!-- When this build is done by the Jenkins CI server; the svn revision number is set in the environment variable SVN_REVISION
This little snippet replaces the revision number in GlobalAssemblyInfo.cs with this svn revision number
-->
<Message Text="Injecting SVN revision number in GlobalAssemblyInfo.cs" />
<FileUpdate Files="GlobalAssemblyInfo.cs"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\("([0-9]+\.[0-9]+\.[0-9]+)(\.[0-9]+)?"\)"
ReplacementText="$1("$2.$(SVN_REVISION)")"
Condition="$(SVN_REVISION) != '' "/>
</Target>
答案 2 :(得分:1)
我发现这样做的最简单方法是使用Change Assembly Version。使用该插件,您只需提供版本号(或使用的环境变量),它将在工作区中的所有AssemblyInfo.cs文件中替换它。
答案 3 :(得分:0)
快速解决此问题的方法是在msbuild任务之前创建一个PowerShell任务。这假设你定义了如上所述的VERSION变量(没有%%)。并且在构建开始之前检查了删除工作区。
这是powershell任务的代码。
nav {
width: 100%;
height: 40px;
background: -webkit-linear-gradient(#3f9a15, #388813, #3f9a15, #388813, #3f9a15);
background: -o-linear-gradient(#3f9a15, #388813, #3f9a15, #388813, #3f9a15);
background: linear-gradient(#3f9a15, #388813, #3f9a15, #388813, #3f9a15);
border-radius: 6px !important;
-moz-border-radius: 6px !important;
}
.nav a{
color: white !important;
font-size: 1.8em !important;
}
.nav li{
padding-right:5px;
}
答案 4 :(得分:0)
以下是我的总结,使其发挥作用:
安装此插件:
https://plugins.jenkins.io/versionnumber/
https://plugins.jenkins.io/change-assembly-version-plugin/
确保您的 AssemblyInfo.cs 包含:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
设置您的版本变量名,不带“$”。
定义一个不错的版本号,例如:'1.1.${BUILD_NUMBER}.${SVN_REVISION}'
添加“更改程序集版本”-构建步骤。 在 '${...}' 示例中输入您的变量:'${VERSION}'
如果您仍然遇到构建错误。检查您的项目文件和 AssemblyInfo.cs 是否存在合并冲突。