C# 可移植类库和源代码管理

C# 可移植类库和源代码管理,c#,version-control,C#,Version Control,我有app2解决方案(.netc#),每个都共享一个可移植类库(一个单独的解决方案)。应用程序解决方案将PCL作为项目引用,而不是通过DLL引用 使用源代码管理处理这种情况的最佳方法是什么?一个应用程序解决方案的一个版本的可移植类库可能会更改,但另一个版本的可移植类库不会立即更改 我目前不受任何源代码控制的约束,我试图用TFS实现这一点,但在可移植类库上存在工作区问题。我愿意接受更好的建议,如Mercurial或Git 如果PTL的更新只影响一个应用程序,则可以创建分支(大多数源代码管理软件都提

我有app2解决方案(.netc#),每个都共享一个可移植类库(一个单独的解决方案)。应用程序解决方案将PCL作为项目引用,而不是通过DLL引用

使用源代码管理处理这种情况的最佳方法是什么?一个应用程序解决方案的一个版本的可移植类库可能会更改,但另一个版本的可移植类库不会立即更改


我目前不受任何源代码控制的约束,我试图用TFS实现这一点,但在可移植类库上存在工作区问题。我愿意接受更好的建议,如Mercurial或Git

如果PTL的更新只影响一个应用程序,则可以创建分支(大多数源代码管理软件都提供)

如果每个申请都有分支机构;更新仅在此分支中可见。然后可以使用合并工具更新另一个

TFS中也提供了分支:


对于策略:

正在进行的是将共享库保留在源代码管理系统的一个单独区域中。每个依赖于共享库的项目都必须创建一个特定于该项目的共享库分支

开发在分支上是独立的,但是您可以将项目分支上的更改合并回共享库的主分支。其他已经拥有共享库分支的项目可以决定是否要将对主分支的更改合并到自己的分支中


更新共享库时,必须执行一些合并,但使用此设置可以确保每个项目与其他项目中执行的更改隔离。每个项目都可以决定何时升级到较新版本的共享库。

这是有道理的,出于兴趣,您更喜欢哪个源代码管理系统?最终决定使用TFS,你的答案解释得更清楚,但@AlexH的链接很有用:)更新会影响两个应用程序,但我想我现在很难弄清楚它在发布时的工作方式。每个分支都将包含其共享TPL的副本,只有合并操作会同步这些副本