Visual studio 是否可以将Visual Studio源代码管理绑定信息保留在.sln和.csproj文件之外?

Visual studio 是否可以将Visual Studio源代码管理绑定信息保留在.sln和.csproj文件之外?,visual-studio,version-control,ankhsvn,Visual Studio,Version Control,Ankhsvn,My Visual Studio 2005正在.sln和.csproj文件中存储有关哪些项目和解决方案与哪些源代码管理存储库一起使用的信息。是否可以将绑定信息存储在某个外部文件中 我希望这些信息存储在解决方案/项目文件之外的原因是为了方便尝试AnknSVN插件。现在,我们在VSS 6中有了所有的内容,但我想维护SVN存储库的一个实验副本,然后使用下面描述的思想手动同步这两个文件: 不幸的是,将绑定存储在.sln文件中(例如)会带来麻烦。为了说明这一点,假设我将整个VSS存储库复制到一个并行SV

My Visual Studio 2005正在.sln和.csproj文件中存储有关哪些项目和解决方案与哪些源代码管理存储库一起使用的信息。是否可以将绑定信息存储在某个外部文件中

我希望这些信息存储在解决方案/项目文件之外的原因是为了方便尝试AnknSVN插件。现在,我们在VSS 6中有了所有的内容,但我想维护SVN存储库的一个实验副本,然后使用下面描述的思想手动同步这两个文件:


不幸的是,将绑定存储在.sln文件中(例如)会带来麻烦。为了说明这一点,假设我将整个VSS存储库复制到一个并行SVN实例中。现在,我在VisualStudio中使用AnknSvn从SVN打开主解决方案;在此过程中,AnkhSvn将.sln文件中的源代码管理绑定信息更改为指向SVN。接下来,假设我将一个新项目P1添加到解决方案中。这将导致Visual Studio再次修改.sln文件,并注意到P1的存在。假设此时我想将我在SVN副本中所做的更改同步回VSS存储库。如果源代码管理绑定没有存储在.sln文件中,那也不会太糟糕。但是,.sln文件现在有两个不同的更改,我想将项目添加更改传播回VSS,但我不想将源代码管理绑定更改传播回VSS,因为这将破坏所有VSS用户的生成!我不认为有一种方法可以在没有其他人工干预的情况下传播一个变更。相反,如果Visual Studio只是将绑定信息存储在.sln文件之外,那么我确实希望将所有.sln文件更改传播回VSS,这样就可以了。

VisualSVN不使用本机源代码管理生态系统插件(SCC),因此不会污染您的解决方案或项目文件。它是商业许可的,但非常合理<$50。因此,您可以继续使用令人讨厌的VSS(尽管理想情况下排除.svn目录)

一位同事编写了此NAnt任务来删除绑定


您可能会适应自定义构建步骤或其他脚本来帮助您。

IIRC AnkhSVN和VSS都严格地通过.sln/.csproj文件(VS的版本控制插件接口促进了这种存储)实现版本控制绑定。因此,简单的答案是否定的


但是,您仍然可以使用subversion作为外部版本控制解决方案,在安全性和稳定性方面,这将比VSS更好,VSS使用命令行(是您的朋友)或。

AnkhSVN 2.0有两种操作模式

  • 已连接(推荐)。这将绑定信息存储在.sln和可选的项目文件中
  • 断开连接。这不会存储绑定
您可以在文件->Subversion->更改源代码管理中连接和断开解决方案和单个项目

连接的优点是:

  • 打开解决方案时在SCC提供程序之间自动切换(例如在VSS、TFS和AnkhSVN之间)
  • 与实现SCC支持的所有项目类型兼容
  • (2.1+)自动处理主工作副本以外的项目。(例如c:\inetpub中的网站)
注意:如果以前在解决方案上使用过AnkhSVN 1.X,则应手动删除Ankh.load文件。当AnkhSVN 2.0看到Ankh.load文件时,它会自动连接您的解决方案

[跟进:

在另一个SCC实现旁边使用AnkhSVN的一种简单方法是只创建一个额外的.sln文件。AnkhSVN不使用单个项目的SCC字段中的实际值。(只需插入它们即可启用项目的完整SCC管理)

您可以使用AnkhSVN,而无需在.sln文件中启用它。您只是没有自动切换提供程序和登记支持(2.1+)。您可以在文件->Subversion->更改源代码管理中断开项目的连接。(来自AnkhSVN 1.X的Ankh.load文件将使AnkhSVN在解决方案打开时重新连接)