Çözümden TFS Bağlantısını Kaldır


82

Çözüm, TFS ile eşleştirmeden temiz kopya olarak nasıl yapılır? Sorun şu ki, onu açmaya çalıştığımda bu mesaj gösteriliyor. TFS bağlantısı olmadan normal şekilde açmak istiyorum.

görüntü açıklamasını buraya girin

Yanıtlar:


51

Çözümü kaynak kontrolünden kalıcı olarak ve tamamen ayırmak istiyorsanız, aşağıdakileri deneyin:

  1. TFS'ye bağlanmaktan kaçınmak için 'Hayır' düğmesine tıklayın.
  2. Dosya menüsünde, kaynak kontrol seçeneklerine gidin ve bağları temizleyin. Özellikle Dosya - Kaynak Kontrolü - Gelişmiş - Kaynak Kontrolünü Değiştir ...
  3. Çözümü kaydedin.

Çözümü bir dahaki sefere açtığınızda, TFS'ye bağlanmanız istenmez.


1
Benim durumumda, TFS'yi VS2010 çözümünden ayırmak için VS2013'ü kullanmak gerekliydi.
bvj

Bu seçeneğin görüntülenmesi için Chrome'da Javascript'i (test için kapatılmış) yeniden etkinleştirmem gerekti. Adil olmak gerekirse MSVC, TFS oturum açma ekranında bir uyarı mesajından bahsetti.
Anthony

Bu düzgün çalışmaz çünkü bağlama dosyalarını kaldırmaz ve daha sonra kaynak denetimine yeniden bağlanmayı zorlaştırır.
Lukos

Benim durumumda, iki giriş için "Bağlantıyı Kes" düğmesi devre dışı bırakıldı.
B. Clay Shannon

2
VS2017'de bunun bir etkisi yoktur, çözümü bir dahaki sefere açtığınızda, sonraki hata mesajını tekrar 'tfs ile iletişim kurma' ve 'tamam' seçmeniz gerekecektir.
Gerard

193

TFS kaynak denetimi bağlamasını tamamen kaldırmak için şu iki adımı izleyin:

  1. Çözümünüzün klasörüne gidin, *.vsssccve *.vspsccuzantılara sahip tüm dosyaları bulun ve silin .
  2. Çözümünüzün .slndosyasını Not Defteri'nde açın ve GlobalSection(TeamFoundationVersionControl)bölümü bulun ve kaldırın .

Referans Bağlantısı hakkında daha fazla ayrıntı


Benim için de çözdü. Sanırım TFS'yi yalnızca Visual Studio içinden tam olarak ayıklayamazsınız.
Rudy Scoggins

3
Bu benim için işe yaradı, ancak Team Foundation çıktısı hala "Çözüm için eşlemeler bulunamadı. Çözüm için eşlemeler bulunamadı. Sunucu kullanılamadığı için etkin çözüm geçici olarak kaynak kontrolünden kesildi. kaynak kontrolüne yeniden bağlanmayı deneyin, sunucu kullanılabilir olduğunda çözümü kapatın ve ardından yeniden açın. Bu çözümü başka bir sunucuya bağlamak istiyorsanız, Kaynak Kontrolünü Değiştir iletişim kutusunu kullanın. "
EngineerWithJava54321

2
Bu benim için çalıştı. "Referans bağlantısındaki" talimatları takip ettim.
Lei Shi

Tüm * .vs * dosyaları, çözüm ve proje klasörleri anlamına gelir .
ourmandave

42

Çözüm dosyasını düzenleyin ve aşağıdaki bölümü ondan kaldırın. Aynı olmayacak ama benzer olacak.

Not : Çözüm dosyasını düzenlemek için proje klasörüne gidin ve ardından YouSolutionName.slndosyayı not defteri ile açın .

GlobalSection(TeamFoundationVersionControl) = preSolution
    SccNumberOfProjects = 2
    SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
    SccTeamFoundationServer = <YourTFSURL>
    SccLocalPath0 = .
    SccProjectUniqueName1 = .
    SccLocalPath1 = .
EndGlobalSection

19

Yorum yapmak için yeterli itibarım yok, ancak Tabish'in çözümünün aslında çözümü kaynak kontrolünden tamamen kaldırmak için doğru çalıştığını eklemek istedim, özellikle de TFS sunucusuna şu veya bu nedenle erişilemediğinde (örneğin yazarın yüklemeden önce kendi kaynak kontrolünden kaldırmadığı proje).

Bununla birlikte, projeden kaynak kontrolünün tüm izlerini tamamen kaldırmak ve bu yanıta yönelik diğer yorumlarda belirtilen uyarılardan kaçınmak için (örneğin, "Çözüm için eşlemeler bulunamadı ..."), ayrıca Çözümdeki her proje dosyasından aşağıdaki satırlar (görünüşe göre bunlar VS'nin önceki sürümlerinde çözüm dosyasındaydı, ancak VS2017'de çözümdeki her proje için proje dosyasında bulunuyorlar - örneğin [proje] .csproj):

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

Bunu işaret ettiğiniz için işaretli cevap ve diğer yorumlar için teşekkürler:

görsel kaynak güvenli - visual studio'da açılmadan çözümden bağlamalar nasıl kaldırılır

Bunu Tabish'in cevabı ile birleştirmek, bir çözümü kaynak kontrolünden manuel olarak kaldırmanın en eksiksiz yöntemi gibi görünüyor.


8
  • Bağlamayı kaldırmak için Visual Studio: Menü Dosyası / Kaynak Kontrolü / Gelişmiş / Kaynak Kontrolünü Değiştir'i kullanabilirsiniz.

  • Ayrıca, herhangi bir SCC'yi ... sln ve csproj'dan kaldırarak kendiniz de yapabilirsiniz.

  • Sık sık kaynak dosyalarını dışa aktarıyorsanız , ExportSrc'yi kullanabilirsiniz . TFS bağlamayı kaldırma (varsayılan olarak AÇIK) gibi birçok seçeneğe sahiptir.


4

Yanıtların çoğu bir çözüm sağladı, ancak ben Visual Studio 2017 tarafından sağlanan bir çözümü kullanmayı tercih ederim.

Visual Studio'nun Menü çubuğunda, Takım'a gidin ve Team Foundation Server'dan Bağlantıyı Kes'i seçin . Bu kadar.


2
Sadece çözümünüzü kapatır ..?
jan4co

0

Birleşme ve satın almanın ve teknoloji transferinin ardından TeamFoundation projelerinin bir koleksiyonunu devraldım. 30'dan fazla çözüm ve bir yığın * .vssscc ve * .vspscc dosyası vardı.

Yukarıdaki herkesin girdisine dayanarak, belirli bir kök klasörü yinelemek, dosyaları silmek, ardından TeamFoundationVersionControl bölümünü kaldırmak için çözüm dosyalarını düzenlemek için bir PowerShell işlevi yazdım.

Kullanım Remove_TFSfiles "pathname" $booleanflag.

Hangi dosyaların etkileneceğini görmek için $false(uses -whatif) kullanın :

Remove_TFSfiles "C:\MyDevFolder" $false

Bu dosyaları gerçekten silmek için şunu kullanın $true:

Remove_TFSfiles "C:\MyDevFolder" $true

İşte fonksiyon:

Function Remove_TFSfiles { 
    param(
        [string]$FolderName = $(throw "-FolderName is required."),
        [bool]$RemoveFiles = $(throw "-RemoveFiles (either $true or $false) is required.")
    )
    $TFSExtensions = '*.vspscc', '*.vssscc'                          

    if ($RemoveFiles) {
        Get-ChildItem -path $FolderName -force -include $TFSExtensions -Recurse | Remove-Item -Force        
        # Now iterate through any solution files, and whack the TeamFoundationVersionControl section
        Get-ChildItem -Path $FolderName -Filter "*.sln" -Recurse | ForEach-Object {
            $slnFilename = $_.Fullname
            Write-Host -NoNewline "Editing $slnFilename... "
            $File = Get-Content $slnFilename -raw
            $Filestr = [regex]::escape("" + $File + "")
            # The regex escapes must themselves be meta-escaped, therefore "\(" becomes "\\" + "\(" = "\\\(". Did I mention I hate regex?
            $Result = $Filestr -replace "\\tGlobalSection\\\(TeamFoundationVersionControl\\\).*?EndGlobalSection\\r\\n", ""
            $result = [regex]::unescape($result)
            Set-ItemProperty $slnFilename IsReadOnly $false
            $result | Set-Content $slnFilename 
            Write-Host "Done"
        }
        Write-Host -f red "Finished actually removing files and editing *.sln files"
    }
    else {
        Get-ChildItem -path $FolderName -force -include $TFSExtensions -Recurse | Remove-Item -WhatIf
        Write-Host -f green "Finished pretending to remove files"
        # Now iterate through any solution files, and whack the TeamFoundationVersionControl section
        Get-ChildItem -Path $FolderName -Filter "*.sln" -Recurse | ForEach-Object {
            $slnFilename = $_.Fullname 
            Write-Host "Not Editing $slnFilename"
        }
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.