【问题标题】:Automatic BizTalk Versioning in My Build Process我的构建过程中的自动 BizTalk 版本控制
【发布时间】:2008-11-06 12:12:35
【问题描述】:

在我的所有其他 .net 应用程序中,我的构建过程(nant 和自定义任务的混合)在调用 msbuild 之前使用当前构建号自动更新 [AssemblyVersionAttribute] AssemblyInfo.cs,并在版本号。

我现在正在处理我的第一个 BizTalk 项目,我想对 BizTalk 程序集的版本号做同样的事情,但我遇到了麻烦!

首先,aseembly 版本号存储在 btproj 文件中,所以我进行了一些谷歌搜索,发现 www.codeplex.com/biztalk 看起来像是我问题的答案,但还有一个更深层次的问题!

我的模式有一个项目,管道项目有另一个项目,管道项目引用我的模式项目,因为我有一个平面文件 dis/assemblers。当我更新版本号时出现问题,因为即使在 Visual Studio 中更新它们也不会更新对架构的管道组件引用。

因此,如果我在 VS IDE 中手动将所有版本号从 1.0.0.0 更新到 1.1.0.0,构建将失败,因为管道组件平面文件反汇编程序仍然引用旧的 1.0.0.0 版本的架构!它们不会自动更新!

这真的是在属性页中更新 BizTalk 项目的版本号,然后构建项目并在引用它们的所有管道组件的属性中手动更新对它们的引用的手动过程吗?

这意味着我不能让我的构建过程控制我的版本号的构建号部分!

或者有没有更好的方法来管理 BizTalk 程序集的版本号?

【问题讨论】:

    标签: build-process biztalk


    【解决方案1】:

    很抱歉让你失望了,但我已经走上了我不得不放弃的道路。我想有可能实现它,但它需要对绑定文件和其他 XML 文件进行大量更改(正如您所提到的,如果您已经发布了服务等,甚至更多)。

    也许可以将所有这些必要的更改封装在构建步骤(MSBuild 步骤或其他构建框架中的类似步骤)中 - 这将是有用的!

    【讨论】:

      【解决方案2】:

      开发者-:)

      我们遇到了类似的问题,我们最终开发了一个小实用程序,它可以相应地更改所有项目中的版本号,即 *.csproj (asssemblyinfo.cs)、*.btproj。除此之外,它将使用新版本的模式打开和修改 *.btp 文件。简而言之,您所要做的就是在您的 VS.net 工具菜单中配置此实用程序并执行它。

      我想在任何 .net 语言中开发这样的实用程序都不是很困难。

      警告:不要忘记在更新后使用与最初相同的编码保存文件。

      干杯!

      【讨论】:

        【解决方案3】:

        内疚,认为可能是这种情况。在更改版本号时更新引用时,BizTalk 2009 项目可能会更好地发挥作用。

        我开始手动完成并自动化它,当我意识到需要做什么时,当我意识到我必须修改多少地方才能使其正常工作时,我退后了一步。感谢上帝撤消结帐。

        我的项目中确实包含了一个标准 C# 类库(各种辅助函数),我可以在构建过程中更新它的版本号,所以我基本上使用那个程序集来对整个应用程序进行版本控制.如果有人想知道任何环境中的版本,请查看该程序集的版本号。

        不理想,但它正在工作。

        【讨论】:

        • 我在网上听说,与 MSBuild 的适当集成是 BT 2009 的一大新功能
        • 那就等不及了!让这些 biztalk 解决方案与我们的其他构建保持一致会很棒。
        【解决方案4】:

        我们已经在我们的项目中成功完成了这项工作 - 我会看看是否可以让该工具的开发人员发布详细信息...

        【讨论】:

          【解决方案5】:

          当您将依赖组件的最新版本作为文件引用(此处为架构)执行集成构建时,就会出现此问题。

          请记住,升级程序集版本必须始终手动执行,这样您始终负责对程序集版本的更改。

          解决 buildbreaks 问题的一个可能解决方案是文件引用特定版本的依赖组件构建,而不是最新版本,并使用子驱动器和复制脚本来获取最新的组件构建。

          例如:

          SchemaA,程序集版本 1.0.0.0 PipelineA(以 pipelinecomponent XMLValidator 为例),程序集版本 1.0.0.0

          PipelineA 有一个对子驱动器(比如 R 驱动器,映射到工作区 D:\MyComponents)和 SchemaA 版本 1.0.0.0 的文件引用,如下所示:

          R:\SchemaA\1.0.0.0\SchemaA.dll。

          复制脚本将 SchemaA 的构建输出本地复制到您的 R 驱动器。

          当架构 A 更新到版本 1.1.0.0 时,您不会遇到任何问题,因为您仍然使用版本 1.0.0.0 并且您可以选择使用架构的 1.1.0.0 版本。当您想要升级时,您必须更改您的复制脚本并将文件引用替换为 R:\SchemaA\1.1.0.0\SchemaA.dll。

          【讨论】:

            猜你喜欢
            • 2018-05-21
            • 2012-07-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多