【问题标题】:Orchard CMS module development and continuous integration with TeamCityOrchard CMS 模块开发和与 TeamCity 的持续集成
【发布时间】:2012-01-04 16:43:30
【问题描述】:

我已经使用 Orchard CMS 进行了几个月的开发(我很喜欢它),并且启动我的网站的时间很快就要到了。到目前为止,我只是在我的 BitBucket 存储库中单独开发,在必要时分叉,没有做任何太花哨的事情。一旦我发布了,虽然我真的需要知道我的模块和主题的确切版本在生产中使用。我认为我的构建服务器中的版本化包是实现这一目标的最佳方式。

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

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

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

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

更新:

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

【问题讨论】:

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


    【解决方案1】:

    我使用了以下方法

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

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

    • 将模块项目中的引用添加到 orchard/bin 以获取任何 果园特有的东西

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

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

    好处

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

    【讨论】:

    • 感谢@Restuta,您的方法几乎就是我最终要做的。但是我确实构建了它,所以我可以将 Orchard.Web zip 解压缩到同一个目录中,这样我就可以有一个功能实例来开发。
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多