代码之家  ›  专栏  ›  技术社区  ›  betitall

如何对跨项目共享的资源进行版本控制

  •  4
  • betitall  · 技术社区  · 16 年前

    部署时,CMS位于子目录中,例如“/Admin”。CMS由.aspx和ascx文件组成,当然,相应的程序集被放置在bin中。

    我们目前不执行任何自动构建。我对TFS中的源代码管理分支了解有限,我不确定它是否适用于这种情况。确保依赖项目从CMS项目接收最新程序集和标记的最佳方法是什么?提前感谢。

    听起来#2(来自竹子)是我想要的解决方案。鉴于共享代码已经存在于每个单独的项目中,你能简要描述一下我将通过“分支/共享”CMS的过程吗?此外,值得注意的是,我不希望将.cs文件传播到依赖项目,只希望传播标记和程序集。这会改变战略吗?我是否应该首先在共享项目上创建一个构建事件,将必要的文件复制到“Release”文件夹,然后分支“Release”目录?

    3 回复  |  直到 14 年前
        1
  •  7
  •   abatishchev Karl Johan    14 年前

    有几种流行的方法来处理这种情况。

    1. 将共享内容的TFS项目映射到每个应用程序工作区,然后将共享项目包含在每个应用程序解决方案中。如果您希望所有团队/应用程序在构建时立即获得共享更改,请使用此方法,因为他们也将获得最新的共享内容。

    我通常更喜欢#2。但这实际上取决于你需要/想要如何工作的具体情况。

        2
  •  0
  •   andleer    16 年前

    不确定TFS,但在大多数源代码管理系统中,您可以在多个位置共享代码。对任何共享副本的更改都会反映在所有副本中。在Visual Studio级别,它们将显示为独立的代码段。

    您的每个web应用程序(解决方案)都包含一个完全由共享代码组成的项目。通常,源代码是共享的,并成为构建过程的一部分。您可以共享生成的DLL,但大多数人不使用源代码管理DLL。

    如果你没有共享部分的源代码,那么在GAC中安装代码可能会成为你创建共享部分的唯一选择。

        3
  •  0
  •   bytebender    16 年前

    我们有一个共享库,用于我们的几个项目。然后,我们添加对共享库的引用,而不是对实际项目的引用。..

    然后,您必须将引用的路径添加到构建xml中,以便TFS服务器知道.dll的位置。每次为项目完成新的构建时,它都会将共享的最新版本复制到项目的bin中。

    我们所有的项目,包括Shared,都有4个分支:开发、集成、暂存和生产。因此,当我们需要对共享库进行更改时,我们会在其开发分支中进行更改,因为它是孤立的。一旦我们感到高兴,我们就会将我们的更改合并到集成中。我们构建共享集成,然后构建受更改影响的项目。这是我们开始测试其他应用程序的时候,看看我们的更改是否导致了任何错误。所以。。。

    1. 对共享库进行更改的一个地方
    2. 合并到单个分支机构,而不是每个项目中的多个分支机构。
    3. 使用共享就像添加引用一样简单
    4. 单个项目和共享版本可以从开发阶段推送到生产阶段,而不会影响任何其他项目。共享的.dll版本被复制到项目bin文件夹。一旦对另一个项目进行了更改,当它被推送到分支时,它将获得最新版本。
    推荐文章