如何同时开发和部署应用程序的测试版和生产版

时间:2013-11-15 12:50:19

标签: c# winforms visual-studio-2010 mercurial branching-and-merging

我需要一些建议如何设置我的开发过程,以便我可以轻松地开发和部署我的应用程序的测试版和生产版。

我项目的当前状态:

  • Visual Studio 2010,C#,. NET 4.0,WinForms应用程序,SQL Server 2008
  • Mercurial source control
  • Click-Once部署到我们公司的intracet
  • 中的共享文件夹
  • Visual Studio中只有一个解决方案(典型的工作流程:进行一些更改 - >发布,重复)

我想拥有什么:

  • 两个独立的环境 - 一个用于生产应用程序,一个用于测试应用程序,这是一个生产应用程序,但具有附加功能,可能会也可能不会添加到主应用程序中。
  • 我想用Click-Once(例如App和AppTest)
  • 发布这两个应用程序
  • 我想有一个选项,只需将“更改”从“测试”应用程序“移动”到主应用程序,或者直接丢弃它们。

我的计划是将现有的存储库克隆到一个新存储库(例如从App到App-Test),所以我最终会得到两个独立的代码库。然后,将在App-Test应用程序中实现和发布新功能。当用户对测试版本感到满意时,我会以某种方式将更改从App-Test存储库移动到App存储库(可能使用Mercurial的merge命令),然后发布生产应用程序......

这是实现这一目标的正确方法吗?某些资源的任何其他建议或链接?这可以在同一个存储库中以某种方式完成吗?

2 个答案:

答案 0 :(得分:1)

这可能是一个存储库,但有两个(或更多)早午餐。例如,我们使用git进行源代码控制和3次早午餐 - 开发,测试,发布。特色(或任务)在开发早午餐中开始了他们的生活。然后他们在测试中移动(合并),并在测试移动后释放。

但是你可能会遇到数据库更改的问题(你使用了一些ORM吗?),因为你需要拥有2个不同的数据库。如果您不使用某些ORM,合并数据库可能会很困难。但我认为,例如,实体框架(代码优先)节省了你的时间。

祝你好运!

答案 1 :(得分:1)

  

两个独立的环境 - 一个用于生产应用,一个用于   测试应用程序,它与生产应用程序相同但是   添加功能,可能会或可能不会添加到主要功能   应用

单个分支上面有MQ,“生产”应用程序是所有变更集,“测试”是“生产”+应用MQ补丁(每个开发特征一个补丁)

  

我想用Click-Once发布这两个应用程序(例如   App和AppTest)

我对Click-Once,out of ideas

一无所知
  

我想有一个选项,只需从Test中“移动”更改   应用于主应用程序,或简单地丢弃它们。

完成MQ-patches转换为永久变更集,只需删除过时的补丁