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

时间:2011-11-23 11:26:57

标签: asp.net-mvc continuous-integration teamcity orchardcms

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

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

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

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

非常感谢任何想法或帮助。

更新

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

1 个答案:

答案 0 :(得分:1)

我使用了以下方法

  • 将Orchard二进制文件添加到存储库而不包含任何源代码,只是在orchard project site
  • 中分发它们。
  • 在单独的目录中创建我的解决方案和所有相关项目,所以目前dir结构如下所示:

    enter image description here

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

  • 将您的模块项目中的引用添加到orchard/bin 果园特有的东西

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

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

<强>优势

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