如何从一个ASP转移c#更改.. NET应用程序到另一个

本文关键字:更改 转移 NET 应用程序 另一个 ASP 一个 | 更新日期: 2023-09-27 18:16:18

我们正在开发Caisis (Caisis.org)——开源临床数据收集系统。Caisis是ASP。. NET (4.0) (c#代码后端)前端和SQL Server 2008后端。

定时升级Caisis版本。例如,我们一直在忙着开发Caisis 5.0版本,现在已经发布了Caisis 6.0版本。我们现在需要转移我们所有的前线部队。后端更改为Caisis Version 6.0。

两个SQL Server数据库之间的同步差异可以使用Red Gate SQL/Data Compare或open DBDiff等开源数据库工具来解决。

然而,据我所知,没有同等的工具(专有的或开源的)来同步ASP。NET/C #应用程序。目前我们使用的是半自动化的方法,包括使用自动复制检测两个文件系统之间的差异,然后手动应用这些更改。有没有更有效的方法?

如何从一个ASP转移c#更改.. NET应用程序到另一个

我也遇到过类似的情况。答案很简单:这不是一件容易的事。你可以使用像Beyond Compare或Araxis Merge这样的工具(在我看来,Merge更用户友好,BC更强大)。来做目录比较。只需稍作配置,就可以让这些工具隐藏所有无差异的目录分支和文件,只留下差异的子集。然后,您可以使用这些工具的文件比较功能来准确地查看文件中的哪些更改,并选择删除哪些内容和保留哪些内容。

(意见)您应该在干净的签入中执行合并操作——也就是说,没有未完成的文件要签入。然后,在合并完成之后,使用进行一次大型签入,只需升级合并更改。这样,如果你拿得太多,或者错过了什么,你就有办法回滚。您可以回滚更改,进行修复,然后再试一次。

如果我要建立一个这种类型的新项目,我的倾向是通过源代码控制分支和合并来处理它。我将引入我要修改的产品的原始代码作为起点(为了便于讨论,我将其称为我的核心分支)。在进行任何更改之前,我会将其分支到我的开发工作中(称为一个dev)。从这里继续使用您喜欢的分支策略。

我所设置的关键是,我从来没有在核心分支中做任何改变,它仍然是真实的,我基于我的修改的原始版本。然后,当对原始代码的更改发布时,我可以将它们应用到我的核心分支中。从那里,我可以将它们合并到我的开发分支中,并通过任何其他分支和适当的发布代码。

当然,这种方法取决于两件事:A)你使用一个源代码控制系统,它在处理分支和合并方面做得很好。B)在项目开始时建立这个分支结构。

在项目已经在进行中之后设置这个将会相当困难。一些源代码控制工具将允许您在离散的代码库之间建立分支关系,但根据我的经验,这样做几乎总是很复杂。对于已经从原始版本进行了重大修改的东西,Eli的建议可能是更好的方法之一。