你能从.sln和.csproj文件中保存Visual Studio源代码控制绑定信息吗?

时间:2008-09-24 22:36:42

标签: visual-studio version-control ankhsvn

我的Visual Studio 2005正在存储有关哪些项目和解决方案与.sln和.csproj文件中的源控件存储库相关的信息。是否可以将绑定信息存储在某些外部文件中?

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

http://www.dotnet6.com/blogs/jeroen/archive/2008/04/05/using-subversion-in-a-vss-only-shop.aspx

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

AnkhSVN 2.0有两种操作模式。

  • 已连接(推荐)。这将绑定信息存储在.sln和可选的项目文件中。
  • 断开。这不存储绑定。

您可以在File-> Subversion-> Change Source Control中连接和断开解决方案和各个项目。

连接的优点是:

  • 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管理)

答案 2 :(得分:0)

同事写了这个NAnt任务来删除绑定

http://www.atalasoft.com/cs/blogs/jake/archive/2008/05/21/2custom-nant-task-for-removing-tfs-bindings.aspx

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

答案 3 :(得分:0)


IIRC AnkhSVN和VSS严格通过.sln / .csproj文件实现版本控制绑定(VS的版本控制插件接口便于这种存储)。因此,简短的回答是否定的。

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