我为你们提供了一个有趣的项目布局问题。我真的不知道如何处理这个问题,所以我希望这里的人有一个好主意。
基本上,我有一个Web应用程序,在大多数情况下,每个客户都是相同的(配置文件除外)。每个客户都有一些不同的文件(javascript,css,sql snippets),管理这一切对我们现在的设置来说有点痛苦。
目前,我们将所有这些自定义文件放在SVN仓库中,当有人进行更改时,他们首先检查核心项目(Web窗体应用程序包含页面,C#类,javascript文件,全局样式,图像,等)进入新的工作目录,然后检查自定义文件并将它们导出到核心项目的工作目录中。一旦他们完成更改,他们将提交核心项目中发生的任何更改(错误修复,其他客户需要的更改/功能),然后将自定义文件复制回自定义工作目录并提交。不用说,这是一个重大的痛苦,事情会被遗漏。
我的最终目标是为核心项目(不包括任何特殊开发分支)提供单个工作目录,并为每个客户提供自定义项目。开发人员将有一个解决方案文件,其中包含这两个项目的一部分,他们可以对这两个项目进行更改,并且提交将转到正确的存储库。
现在,我可以设置一个看起来像这样的多项目解决方案,但在功能上我不知道该怎么做。如何运行核心项目并提供所有自定义文件?我们如何部署到测试或生产服务器?我们如何处理仅部分定制的Web配置(例如连接字符串)?
如果有人做过类似的事情,或者对如何设置这样的项目有所了解,我们将不胜感激。
答案 0 :(得分:0)
好的,我的工作场所以前遇到过同样的问题。我们最终使用分支机构。
假设您在一个目录(主要)中有2个项目,现在您有另一个客户端进入。
只需将此目录(main)分支到另一个目录(clientA)即可。现在在目录clientA中,你应该有2个项目。像往常一样进行日常开发,但只是将核心项目的变化合并到主分支。
---Main
----Core
----CustomisedSkeleton
---ClientA (branch)
----Core (do merge back later)
----ClientACustomised (client based code, do not do any merge in)
还有一件事,因为您的工作是Web应用程序,您需要更新每个分支的Web项目文件,以使其绑定到本地IIS上的不同URL。
假设主要网络应用程序的网址是“http://yourmachine.com/main/login.aspx”, 并且您自定义分支的Web应用程序URL是“http://yourmachine.com/clientA/login.aspx”