获取svn修订版并将其设置为Jenkins的assembly

获取svn修订版并将其设置为Jenkins的assembly,svn,build,.net-assembly,revision,Svn,Build,.net Assembly,Revision,我在詹金斯建立了我的第一个模型, 我试图通过变量svn_revision获取svn revision,但它不起作用 我需要它在我的assemblyInfo文件中设置它 我在谷歌上搜索了一下,结果一无所获 请帮帮我 您可以使用我们编写的flubu。Flubu是一个C#库,用于使用C#代码构建项目和执行部署脚本 有关flubu的更多信息,请访问: 对于您的特定情况,您必须生成CommonAssemblyInfo或使用自定义任务更新每个AssemblyInfo信息。我将为您提供如何使用CommonAs

我在詹金斯建立了我的第一个模型, 我试图通过变量svn_revision获取svn revision,但它不起作用

我需要它在我的assemblyInfo文件中设置它

我在谷歌上搜索了一下,结果一无所获


请帮帮我

您可以使用我们编写的flubu。Flubu是一个C#库,用于使用C#代码构建项目和执行部署脚本

有关flubu的更多信息,请访问:

对于您的特定情况,您必须生成CommonAssemblyInfo或使用自定义任务更新每个AssemblyInfo信息。我将为您提供如何使用CommonAssemblyInfo执行此操作的示例:

public class BuildScript : DefaultBuildScript
 {
        protected override void ConfigureBuildProperties(IBuildPropertiesContext context)
        {
            context.Properties.Set(BuildProps.CompanyName, "Company");

            context.Properties.Set(BuildProps.ProductId, "ProductId");
            context.Properties.Set(BuildProps.ProductName, "ProductName");
            context.Properties.Set(BuildProps.SolutionFileName, @"Solution.sln");
            context.Properties.Set(BuildProps.BuildConfiguration, "Release");
        }

        protected override void ConfigureTargets(ITaskContext context)
        {
            var loadSolution = context.CreateTarget("load.solution")
                .SetDescription("Load & analyze VS solution")
                .AddTask(x => x.LoadSolutionTask())
                .SetAsHidden();

            var fetchVersion = context.CreateTarget("fetch.version")
                .SetDescription("Fetch the build version")
                .Do(TargetFetchBuildVersion);

            var generateCommonAssInfo = context.CreateTarget("generate.commonAssInfo")
             .DependsOn(fetchVersion)
             .TaskExtensions()
                .GenerateCommonAssemblyInfo()
                .BackToTarget();

           var compile = context.CreateTarget("compile")
                .AddTask(x => x.CompileSolutionTask())
                .DependsOn(loadSolution, generateCommonAssInfo);
        }

        public static void TargetFetchBuildVersion(ITaskContext context)
        {
            var version = context.Tasks().FetchBuildVersionFromFileTask().Execute(context);
            string svnRevisionNumberString = Environment.GetEnvironmentVariable("SVN_REVISION");
            int svnRevisionNumber = 0;

            if (!string.IsNullOrEmpty(svnRevisionNumberString))
            {
                svnRevisionNumber = int.Parse(svnRevisionNumberString, CultureInfo.InvariantCulture);
            }

            version = new Version(version.Major, version.Minor, version.Build, svnRevisionNumber);
            context.Properties.Set(BuildProps.BuildVersion, version);
        }
}
然后在cmd或jenkins中使用flubu runner作为构建步骤运行脚本:
build.exe compile

您必须将生成的CommonAssemblyInfo包含到每个项目中