繁体   English   中英

您可以将Visual Studio源代码控制绑定信息保留在.sln和.csproj文件之外吗?

[英]Can you keep Visual Studio source control binding info out of .sln and .csproj files?

我的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,这样就可以了。

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

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

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

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

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

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

但是,您仍然可以将subversion用作外部版本控制解决方案,就安全性和稳定性而言,使用命令行( 本书是您的朋友)或TortoiseSVN优于VSS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM