समाधान से TFS कनेक्शन निकालें


82

TFS को मैप किए बिना क्लीन कॉपी के रूप में समाधान कैसे करें? समस्या यह है कि यह संदेश तब दिखाता है जब मैं इसे खोलने की कोशिश कर रहा हूं। मैं इसे TFS कनेक्शन के बिना सामान्य रूप से खोलना चाहता हूं।

यहां छवि विवरण दर्ज करें

जवाबों:


51

यदि आप स्रोत नियंत्रण से समाधान को स्थायी रूप से और पूरी तरह से अलग करना चाहते हैं, तो निम्नलिखित प्रयास करें:

  1. TFS से कनेक्ट होने से बचने के लिए 'नहीं' बटन पर क्लिक करें।
  2. फ़ाइल मेनू में, स्रोत नियंत्रण विकल्पों पर जाएं और बाइंडिंग साफ़ करें। आप विशेष रूप से फाइल - सोर्स कंट्रोल - एडवांस्ड - चेंज सोर्स कंट्रोल चाहते हैं ...
  3. समाधान बचाओ।

अगली बार जब आप समाधान खोलेंगे तो आपको टीएफएस से कनेक्ट करने के लिए संकेत नहीं दिया जाएगा।


1
मेरे मामले में, VS2010 समाधान से TFS को अलग करने के लिए VS2013 का उपयोग करना आवश्यक था।
bvj

मुझे इस विकल्प को प्रदर्शित करने के लिए क्रोम में जावास्क्रिप्ट (परीक्षण के लिए बंद) को फिर से सक्षम करना पड़ा। निष्पक्ष होने के लिए MSVC ने स्क्रीन पर TFS लॉग पर एक चेतावनी संदेश का उल्लेख किया।
एंथनी

यह ठीक से काम नहीं करता है क्योंकि यह बाइंडिंग फ़ाइलों को नहीं हटाता है, जिससे बाद में स्रोत नियंत्रण को फिर से कनेक्ट करना मुश्किल हो जाता है।
लूकोस

मेरे मामले में, दो प्रविष्टियों के लिए "डिस्कनेक्ट" बटन अक्षम है।
बी क्ले शैनन

1
VS2017 में इसका कोई प्रभाव नहीं पड़ता है, अगली बार जब आप समाधान खोलते हैं, तो आपको फिर से चयन करना होगा कि त्रुटि संदेश के लिए 'टीएफएस से संपर्क न करें' और 'ठीक' है।
जेरार्ड

193

TFS स्रोत नियंत्रण बाइंडिंग को पूरी तरह से हटाने के लिए इन दो चरणों का पालन करें:

  1. , अपने समाधान के फ़ोल्डर में जाएँ खोजने के लिए और के साथ सभी फ़ाइलों को हटाने *.vsssccऔर *.vspsccएक्सटेंशन।
  2. .slnनोटपैड में अपने समाधान की फ़ाइल खोलें , और GlobalSection(TeamFoundationVersionControl)अनुभाग ढूंढें और निकालें ।

संदर्भ लिंक पर अधिक जानकारी


यह मेरे लिए भी हल किया। मुझे लगता है कि आप केवल विज़ुअल स्टूडियो के भीतर से TFS को पूरी तरह से नहीं निकाल सकते।
रूडी स्कोगिंस

3
यह मेरे लिए काम करता है, सिवाय इसके कि टीम फाउंडेशन आउटपुट अभी भी कहता है, "समाधान के लिए मैपिंग नहीं मिल सका। समाधान के लिए मैपिंग नहीं मिल सका। सक्रिय समाधान स्रोत नियंत्रण से अस्थायी रूप से डिस्कनेक्ट हो गया है क्योंकि सर्वर अनुपलब्ध है।" स्रोत नियंत्रण को पुन: कनेक्ट करने का प्रयास, सर्वर उपलब्ध होने पर समाधान को बंद करें और फिर से खोलें। यदि आप इस समाधान को किसी अन्य सर्वर से कनेक्ट करना चाहते हैं, तो बदलें स्रोत नियंत्रण संवाद का उपयोग करें। "
इंजीनियरविथ

2
इसने मेरे लिए काम किया। मैंने "संदर्भ लिंक" पर निर्देशों का पालन किया।
Lei Shi

सभी * .vs * फ़ाइलों का अर्थ है समाधान और प्रोजेक्ट फ़ोल्डर।
Ourmandave

42

समाधान फ़ाइल को संपादित करें और इसमें से निम्न अनुभाग निकालें। यह समान नहीं होगा, लेकिन समान होगा।

नोट : समाधान फ़ाइल को संपादित करने के लिए प्रोजेक्ट फ़ोल्डर पर जाएँ और फिर YouSolutionName.slnफ़ाइल को नोटपैड के साथ खोलें ।

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

19

मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन बस जोड़ना चाहता था कि तबिश का समाधान वास्तव में स्रोत नियंत्रण से समाधान को पूरी तरह से हटाने के लिए सही ढंग से काम करता है, खासकर जब टीएफएस सर्वर एक कारण या किसी अन्य के लिए उपलब्ध नहीं है (जैसे आपने एक डाउनलोड किया प्रोजेक्ट करें जिसे अपलोड करने से पहले लेखक ने अपने स्वयं के स्रोत नियंत्रण से नहीं हटाया था)।

हालांकि, परियोजना से स्रोत नियंत्रण के सभी निशान को पूरी तरह से हटाने के लिए और उस उत्तर के लिए अन्य टिप्पणियों में उल्लिखित चेतावनियों से बचने के लिए (उदाहरण के लिए "समाधान के लिए मैपिंग नहीं मिल सका ..."), आपको भी निकालना होगा। समाधान में प्रत्येक परियोजना फ़ाइल से निम्नलिखित पंक्तियाँ (जाहिरा तौर पर ये वीएस के पुराने संस्करणों में समाधान फ़ाइल में हुआ करती थीं, लेकिन VS2017 में वे समाधान में प्रत्येक परियोजना के लिए परियोजना फ़ाइल में पाई जाती हैं - जैसे [परियोजना] .csproj):

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

इसे इंगित करने के लिए यहां दिए गए उत्तर और अन्य टिप्पणियों के लिए धन्यवाद:

दृश्य स्रोत सुरक्षित - दृश्य स्टूडियो में समाधान w / o खोलने से बाइंडिंग को कैसे हटाया जाए

ताबिश के उत्तर के साथ इसे जोड़ना, स्रोत नियंत्रण से समाधान को मैन्युअल रूप से हटाने का सबसे पूर्ण तरीका लगता है।


8
  • बाइंडिंग को निकालने के लिए आप Visual Studio: Menu File / Source Control / Advanced / Change Source Control का उपयोग कर सकते हैं।

  • आप इसे किसी भी SCC ... sln और csproj से हटाकर स्वयं भी कर सकते हैं।

  • यदि आप अक्सर स्रोत फ़ाइलों को निर्यात करते हैं, तो आप ExportSrc का उपयोग कर सकते हैं । इसके कई विकल्प हैं जैसे TFS बाइंडिंग (डिफ़ॉल्ट रूप से) को हटा दें।


4

अधिकांश उत्तर एक समाधान प्रदान करते हैं, लेकिन मैं विज़ुअल स्टूडियो 2017 द्वारा प्रदान किए गए समाधान का उपयोग करूंगा।

विज़ुअल स्टूडियो के मेनू बार पर, टीम में जाएं और टीम फाउंडेशन सर्वर से डिस्कनेक्ट को चुनें । बस।


2
यह केवल आपके समाधान को बंद करता है ..?
Jan4co

0

मुझे सिर्फ एम एंड ए बायआउट और टेक ट्रांसफर के बाद टीमफाउंडेशन परियोजनाओं का एक संग्रह विरासत में मिला। 30+ सॉल्यूशंस और * .vssscc और * .vspscc फ़ाइलों का एक नितंब जैसा था।

ऊपर दिए गए हर किसी के इनपुट के आधार पर, मैंने एक निर्दिष्ट रूट फ़ोल्डर को पुनः प्राप्त करने, फ़ाइलों को हटाने, फिर TeamFoundationVersionControl अनुभाग को हटाने के लिए समाधान फ़ाइलों को संपादित करने के लिए एक PowerShell फ़ंक्शन लिखा।

उपयोग है Remove_TFSfiles "pathname" $booleanflag

यह देखने के लिए कि क्या फ़ाइलें प्रभावित होंगी, उपयोग करें $false(-whatif):

Remove_TFSfiles "C:\MyDevFolder" $false

वास्तव में उन फ़ाइलों को हटाने के लिए, उपयोग करें $true:

Remove_TFSfiles "C:\MyDevFolder" $true

यहाँ समारोह है:

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"
        }
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.