Orchard CMS模块开发并与TeamCity持续集成

Bre*_*dan 9 asp.net-mvc teamcity continuous-integration orchardcms

我已经开发了Orchard CMS几个月了(并且喜欢它),启动我的网站的时间快到了.到目前为止,我刚刚从我的BitBucket回购开发,在必要时分叉,没有做任何太花哨的事情.一旦我发布了,我真的需要掌握我的模块和主题在生产中使用的确切版本.我认为我的构建服务器中的版本化软件包是实现这一目标的最佳方式.

目前我的repo包含整个Orchard实例的源(减去App_Data文件夹),以及包含作为我的模块和主题的项目的解决方案文件.我的模块从App_Data/Dependencies文件夹中获取其他模块的依赖项.

我的问题是,这是实现持续集成的最佳方法吗?

我在TeamCity下构建了我的解决方案,但我没有在我的仓库中包含App_Data文件夹,所以我至少需要加载设置页面以便填充Dependencies目录(由于某种原因,我的构建服务器上不会发生这种情况) ?似乎只有动态编译才能解决所有问题?)

任何想法或帮助将不胜感激.

更新:

我已经决定将lib文件夹添加到我的解决方案中并在那里存储所有依赖程序集.然后我会让我的repo只包含我的模块/主题所需的项目.CI服务器在构建解决方案时没有任何问题,我可以将repo克隆到Orchard实例中以便于开发(这意味着我的解决方案必须包含Modules和Themes目录).

Res*_*uta 1

我采用了以下方法

  • 将 Orchard 二进制文件添加到存储库中,无需任何源代码,只需在 中,因为它们分布在orchard 项目站点
  • 在单独的目录中创建我的解决方案和所有相关项目,因此目前目录结构如下所示:

    在此输入图像描述

  • 然后将模块项目放在orchard/modules包含所有源和.proj文件的文件夹下

  • 添加模块项目中的引用以orchard/bin获取任何果园特定的内容

  • 手动将模块二进制文件添加到App_Data/Dependencies文件夹中以便能够引用它们

这种方法的改进之一是关闭动态编译并仅存储模块二进制文件,但这需要配置输出 bin 路径以及构建脚本中的其他操作。

好处

  • 除了模块之外,您的存储库中没有任何果园源(但这可以通过关闭动态编译来解决)。
  • 您可以轻松地几乎独立地升级 Orchard 二进制文件和模块
  • 构建需要更少的时间