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

9
我已经使用Orchard CMS进行开发几个月了(很喜欢它),现在要发布我的网站了。到目前为止,我只是从我的BitBucket库中单独开发,根据需要进行分叉,并没有做任何太复杂的事情。但一旦发布后,我真的需要掌握生产环境中我模块和主题的确切版本。我认为从我的构建服务器中得到版本化的包是实现这一点最好的方法。
当前,我的库包含整个Orchard实例的源代码(不包括"App_Data"文件夹),其中解决方案文件包括我的模块和主题项目。我的模块从"App_Data/Dependencies"文件夹中获取其他模块的依赖项。
我的问题是,这是否是实现持续集成的最佳方法?
我已经在TeamCity下构建了我的解决方案,但是我没有在我的库中包含"App_Data"文件夹,因此我至少需要加载设置页面以填充"Dependencies"目录(由于某种原因,这在我的构建服务器上并没有发生?似乎只有动态编译可以完成所有内容)。
如有想法或帮助,将不胜感激。
更新:
我决定向我的解决方案添加一个lib文件夹,并将所有相关程序集存储在那里。然后,我的库将只包含我的模块/主题所需的项目。CI服务器将没有问题来构建解决方案,我可以将库克隆到Orchard实例中进行轻松开发(这意味着我的解决方案必须包含Modules和Themes目录)。
1个回答

1
我使用了以下的方法:
  • 将Orchard的二进制文件添加到存储库中,不包含任何源代码,只是按照orchard项目网站分发的形式。
  • 在单独的目录中创建我的解决方案和所有相关项目,因此目前的目录结构如下所示:

    enter image description here

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

  • 从您的模块项目中添加引用到orchard/bin找到任何orchard-specify stuff

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

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

好处

  • 除了模块之外,你的仓库中没有任何 Orchard 源代码(但这可以通过关闭动态编译来解决)。
  • 你可以很容易地独立升级 Orchard 二进制文件和模块。
  • 构建时间更短。

谢谢@Restuta,你的方法基本上就是我最终采用的。不过我进行了一些结构上的调整,这样我就可以将Orchard.Web zip文件解压到同一个目录中,以便我能够开发一个功能完备的实例。 - Brendan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接