Version control 使用VisualStudio自动化构建和开发模式

Version control 使用VisualStudio自动化构建和开发模式,version-control,build-automation,development-environment,Version Control,Build Automation,Development Environment,我目前正在做一个项目,这个项目已经连续进行了几年。开发团队很小(少于5名程序员),几乎不存在源代码管理,部署过程只是基于手动将文件从一台服务器移动到另一台服务器。该项目采用经典ASP,因此构建不是问题,因为部署和测试都只是将文件放到需要的位置,并将浏览器引导到正确的位置。目前,所有开发都是在网络驱动器上完成的,网络驱动器也是测试服务器。测试服务器仅在本地网络内部可用(可通过vpn访问),并且在浏览器中的地址“site.test”上可用(需要编辑所有客户端上的主机文件,但因为我们中很少有人证明没有

我目前正在做一个项目,这个项目已经连续进行了几年。开发团队很小(少于5名程序员),几乎不存在源代码管理,部署过程只是基于手动将文件从一台服务器移动到另一台服务器。该项目采用经典ASP,因此构建不是问题,因为部署和测试都只是将文件放到需要的位置,并将浏览器引导到正确的位置。目前,所有开发都是在网络驱动器上完成的,网络驱动器也是测试服务器。测试服务器仅在本地网络内部可用(可通过vpn访问),并且在浏览器中的地址“site.test”上可用(需要编辑所有客户端上的主机文件,但因为我们中很少有人证明没有任何问题)。所有的开发都是在VisualStudio中完成的。无论何时更改文件,更改文件的开发人员都需要将更改的文件写入word文档,并包含一个关于更改内容和原因的小说明。然后,只要有版本升级(部署),我们的首席开发人员就会遍历word文档,并将更改后的每个文件(一个文件一个文件)复制到生产服务器。现在,我不认为我需要告诉您,这种方法非常容易出错(例如,开发人员可能忘记添加他更改了一些依赖项,这在部署时可能会导致问题),而且部署涉及大量工作

主要问题来了。首席开发人员要求我花一些时间,看看我是否能想出一个简单的解决方案来简化和自动化“版本控制”和部署。现在,重要的一点是,开发人员可以尽可能容易地使用它。现有的两个开发人员已经在计算机上工作了很长时间,并且对自己的例程非常着迷,因此,例如,将其更改为git bash之类的东西根本不起作用。别误会我的意思,我喜欢git,但当其中一个第一次发生合并冲突时,他们根本不知道该怎么办。此外,最好改为更分布式的开发过程,开发人员不需要登录vpn(或者根本不需要internet)进行开发,他们离线所做的更改可以在完成时同步。现在,我研究了微软的Teem Development Server,因为它与VisualStudio的强大集成。就我所测试的情况而言,如果用户希望在关闭VisualStudio时签入更改,则可以让VisualStudio提示用户。现在,使用TFS进行源代码控制可能会消除开发中的大部分问题,但部署呢?更不用说版本控制了?据我所知(我只简要介绍了TFS),TFS对每个签入都有一个运行编号,但是否可以告诉TFS该签入应该是系统的2.0.1版(例如),然后让它将其部署到web服务器?另一个问题是,整个解决方案由大约10个目录组成,其中包含数百个文件,尽管系统本身(没有图像等)只有5个目录,并且只有这5个目录应该部署到服务器上,但这是否可以实现自动化

我知道这里有很多问题,但最重要的是我想自动化开发过程(不是编码,而是代码的管理)和部署过程,我想让它尽可能简单地使用。我不在乎设置是否需要一点工作,因为我手头有足够的时间来设置任何适合我们需要的系统,但是其他开发人员不必进行大量设置。如果所有应该使用该系统的机器都需要设置一次,那根本没有问题,因为我可以这样做,但不需要在我们进行配置和设置


现在,为了简化上述过程,你们中有人对使用什么系统/如何使用它们有什么建议吗?我以前使用过几种类型的scm系统(GIT、HG和SubVersion),但我对构建系统没有任何经验(如果需要的话)。如能提供文章,并讨论如何有效地建立这样的系统,将不胜感激。提前,谢谢。

这是一个相当主观的领域,但我认为你需要先获得一些轻松的胜利。那些“在那里被卡住”的开发者是这里的主要障碍。他们会认为变革具有破坏性,不值得。你需要慢慢地、小心地去争取轻松的胜利

首先,TFS可能不是一个好的选择。它既昂贵又沉重,而且TFS中的源代码控制非常糟糕。选择Subversion:它易于安装和使用,而且是免费的。先把它准备好,让开发者使用它。说起来容易做起来难

稍后(可能要晚很多),一旦开发人员使用它,并且无法想象没有VCS的生活,那么如果您需要一流的分支和所有其他优秀功能,您可以切换到Hg或Git


一旦你有了Subversion,你就可以使用JetBrains TeamCity或Jenkins之类的东西,这两种东西都是免费的,而且很容易使用。然而,我只是假设您没有很多CI服务器真正要运行的测试和构建脚本,所以首先获得VCS更为重要。在所有事情上:尽可能保持简单。婴儿步。获得一些胜利,建立信任,重复。

这是一个相当主观的领域,但我认为你需要先获得一些简单的胜利。那些“在那里被卡住”的开发者是这里的主要障碍。他们会认为变革具有破坏性,不值得。你需要慢慢地、小心地去争取轻松的胜利

首先,TFS