Visual Source Safe - 如何在不打开Visual Studio的情况下从解决方案中删除绑定

13
有没有好的方法可以在不打开 Visual Studio 的情况下删除 Visual Studio 2005 和 2008 解决方案的 VSS 源代码控制绑定?我曾使用以下命令:`del /s /f /a: *.*scc`,然后当我打开 Visual Studio 时,它会提示我并给我“永久删除绑定”的选项。但现在尝试此方法时,它会重新创建 .vssscc 文件,并告诉我我的工作副本包含不同版本的 .vsscc 文件。没有选项可以删除源代码控制绑定。真正的问题是,我正在尝试从源代码安全库中使用旧的标记的解决方案副本进行工作。但是,如果我在解决方案仍受到源代码控制的限制时打开解决方案,它将获取网站的最新版本。即使我已取消选中“源代码控制-->环境-->打开解决方案或项目时获取所有内容”的选项也是如此。
5个回答

23

我通过编辑解决方案文件以及删除*.*scc文件使其工作。

这是我从解决方案文件中删除的内容:

在以下部分下:

ProjectSection(WebsiteProperties) = preProject

我删除了以下四行代码:

        SccProjectName = ""$/HOS_amend.root/HOS", ENWBAAAA"
        SccAuxPath = ""
        SccLocalPath = ".."
        SccProvider = "MSSCCI:Microsoft Visual SourceSafe"

同时也删除了整个部分:

GlobalSection(SourceCodeControl) = preSolution

我这样做后,打开解决方案时会弹出一个选项,询问是否“永久移除绑定”。


2022年这个答案仍然经常获得赞,真是太神奇了!人们还在使用Visual Source Safe吗? - Seth Reno
1
是的!我继承了一个已经在VSS中使用了15年以上的大型遗留系统。我正试图像OP一样,想要从VS2012解决方案文件中剥离VSS工件,而不需要打开这些解决方案。我正在将SCC迁移到Git。 - Scott
使用吗?不。试图杀死?非常肯定! - Thoryn Hawley
使用吗?不。试图杀人吗?非常肯定! - undefined

7

在Visual Studio中

  1. 打开你的项目,然后转到
  2. 文件-->源代码控制-->更改源代码控制。
  3. 选择项目和/或解决方案
  4. 点击取消绑定。

您还需要将所有文件的只读属性更改为可读/写,以便稍后能够修改它们。


6
这是我用来删除所有源代码控制文件的.cmd文件:
:: *.scc
:: ===========================================================================

attrib /s -h -s "*.scc"  :: Must get rid of system and hidden attributes
attrib /s -r "*.scc"     :: at same time
del /s "*.scc"

:: *.vssscc
:: ===========================================================================

attrib /s -h -s "*.vssscc"
attrib /s -r "*.vssscc"
del /s "*.vssscc"

:: *.vspscc
:: ===========================================================================

attrib /s -h -s "*.vspscc"
attrib /s -r "*.vspscc"
del /s "*.vspscc"

:: *.vsscc
:: ===========================================================================

attrib /s -h -s "*.vsscc"
attrib /s -r "*.vsscc"
del /s "*.vsscc"

之后你可以在Visual Studio中打开,并提示你删除源代码控制绑定(这将删除Seth Reno提到的行,即。

    SccProjectName = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    SccAuxPath = "x"
    SccLocalPath = "xxx"
    SccProvider = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

或者你可以使用某种正则表达式去除方法,但我没有相关代码。


谢谢,这真的很有帮助。 - TENNO
不错的解决方案!我最初在VS中寻找的是菜单选项。正如其他答案中所指出的那样,确实有一个选项,但它似乎不能清理只读/隐藏/系统文件。因此,首先进行这个操作同样很容易,然后VS提示解除绑定意味着我甚至不必搜索菜单命令! :-) - Abacus

3

只需在项目中搜索*.scc和.vss,将它们全部删除,然后在Visual Studio 2008中打开您的项目,它会询问您是否要删除绑定或修复它。


0
我不确定什么是“最佳”答案,但我可以提供一些信息:首先,我想到的唯一可靠的方法是创建一个具有相同设置的新解决方案和项目,在新文件夹中复制所有模块、类、表单等成员文件,然后将它们添加到项目中,并最终重置所有项目和解决方案属性以匹配。
如果有人有更好的可靠方法,请告诉我,但到目前为止,我尝试过的所有其他方法都导致了项目/解决方案和VSS集成的破坏。
据我所知,这是因为VSS和VS项目之间的绑定在solution.SSC、solution.VSSSCC、solution.SLN、mssccprj.scc、vssver.ssc和*.%proj文件中,也可能存在于SUO中(呃!)。

1
哎呀!我绝对太懒了,搞不定这些。 - Seth Reno
1
我也曾这样认为,直到我不得不去做它... :-( - RBarryYoung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接