如何使用版本控制在多个网站上保持编译的代码库为最新?

问题描述 投票:3回答:2

目前,我们公司内部网中的各种网站都有很长的列表。大多数都位于防火墙内部,并且需要使用Active Directory帐户进行访问。到目前为止,我们的问题之一是网站数量的增加以及添加了存储我们的数据库访问类,通用帮助函数,序列化方法等的通用代码库。目标是在整个框架中使用该框架公司所有网站。

[目前,我们已通过这些更改不断升级了内部数据输入应用程序。它是最新的。但是,问题是维护所有其他网站。是否有最佳实践或方法可以找出每个网站上的版本并进行相应升级?我可以在一个集中的位置保存这些DLL,而站点可以引用它们吗?找出这些网站上的版本而无需浏览每个网站,找出版本并在每次更改后进行升级的最佳方法是什么?

请记住,我们运行最新的TFS,并且是.NET开发团队。

asp.net .net version-control tfs versioning
2个回答
2
投票

在我的工作中,我们有一个与您类似的设置,许多使用通用库的内部应用程序,并且我花了一年的大部分时间对所有这些进行了整理。

首先要注意的是,您提到的内容与TFS无关,但实际上是应用程序及其组件的打包和部署方式的症状。

以下是一些入门指南:

设置自动/连续构建

这是您需要做的第一件事。如有必要,请使用TFS中的构建工具,或者对TeamCity之类的产品进行投资(很棒)。评估一切。找到您喜欢的东西,其他所有人都可以生活。您需要找到自己喜欢的东西的原因是因为您最终将对此负责。

设置自动构建之所以如此重要的原因是,这是您解决其余问题的起点。

设置自动部署

现在,构建服务器应构建每个可部署的工件。不再需要手动部署。不再从工作站进行部署。没有更多的visual studio发布功能。很难摆脱这一点,但这是值得的。

如果您有很多Web项目,则可以使用可以通过msbuild / powershell轻松实现自动化的Web部署,也可以尝试使用octopus部署之类的工具。

使用nuget打包通用组件

现在,您的通用代码应该具有自己的自动构建,但是如何自动部署通用组件?将其打包到nuget中,然后放到一个共享中供使用,或者将其托管在nuget服务器中(TeamCity内置了一个)。好的构建服务器可以自动为您更新nuget软件包(如果您始终需要使用最新版本),并且可以通过检查packages.config来检查所引用的版本。


我知道这很重要,但是从本质上讲,这是迈向持续交付的基础(http://continuousdelivery.com/)。

[请注意,正确执行此操作将花费您很长时间,但是该过程是渐进的,您可以随着时间的推移逐步发展。但是,等待时间越长,难度就越大。感觉不需要同时升级所有项目,而不必。只是那些造成最大痛苦的人。

我希望这会有所帮助。


0
投票

我只想走出解决您问题的特定解决方案的空间,并满足您巩固工作量的基本需求。请注意,任何修补/升级方案都会产生您必须解决的费用-没有神奇的药丸。特别是,您想要实现的目标通常会产生构建/部署开销(如jonnii所述)或运行时开销(在验证新版本以确保一切正常时进行)。

© www.soinside.com 2019 - 2024. All rights reserved.