TFS को मैप किए बिना क्लीन कॉपी के रूप में समाधान कैसे करें? समस्या यह है कि यह संदेश तब दिखाता है जब मैं इसे खोलने की कोशिश कर रहा हूं। मैं इसे TFS कनेक्शन के बिना सामान्य रूप से खोलना चाहता हूं।
जवाबों:
यदि आप स्रोत नियंत्रण से समाधान को स्थायी रूप से और पूरी तरह से अलग करना चाहते हैं, तो निम्नलिखित प्रयास करें:
अगली बार जब आप समाधान खोलेंगे तो आपको टीएफएस से कनेक्ट करने के लिए संकेत नहीं दिया जाएगा।
TFS स्रोत नियंत्रण बाइंडिंग को पूरी तरह से हटाने के लिए इन दो चरणों का पालन करें:
*.vssscc
और *.vspscc
एक्सटेंशन।.sln
नोटपैड में अपने समाधान की फ़ाइल खोलें , और GlobalSection(TeamFoundationVersionControl)
अनुभाग ढूंढें और निकालें ।संदर्भ लिंक पर अधिक जानकारी
समाधान फ़ाइल को संपादित करें और इसमें से निम्न अनुभाग निकालें। यह समान नहीं होगा, लेकिन समान होगा।
नोट : समाधान फ़ाइल को संपादित करने के लिए प्रोजेक्ट फ़ोल्डर पर जाएँ और फिर YouSolutionName.sln
फ़ाइल को नोटपैड के साथ खोलें ।
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 2
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = <YourTFSURL>
SccLocalPath0 = .
SccProjectUniqueName1 = .
SccLocalPath1 = .
EndGlobalSection
मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन बस जोड़ना चाहता था कि तबिश का समाधान वास्तव में स्रोत नियंत्रण से समाधान को पूरी तरह से हटाने के लिए सही ढंग से काम करता है, खासकर जब टीएफएस सर्वर एक कारण या किसी अन्य के लिए उपलब्ध नहीं है (जैसे आपने एक डाउनलोड किया प्रोजेक्ट करें जिसे अपलोड करने से पहले लेखक ने अपने स्वयं के स्रोत नियंत्रण से नहीं हटाया था)।
हालांकि, परियोजना से स्रोत नियंत्रण के सभी निशान को पूरी तरह से हटाने के लिए और उस उत्तर के लिए अन्य टिप्पणियों में उल्लिखित चेतावनियों से बचने के लिए (उदाहरण के लिए "समाधान के लिए मैपिंग नहीं मिल सका ..."), आपको भी निकालना होगा। समाधान में प्रत्येक परियोजना फ़ाइल से निम्नलिखित पंक्तियाँ (जाहिरा तौर पर ये वीएस के पुराने संस्करणों में समाधान फ़ाइल में हुआ करती थीं, लेकिन VS2017 में वे समाधान में प्रत्येक परियोजना के लिए परियोजना फ़ाइल में पाई जाती हैं - जैसे [परियोजना] .csproj):
SccProjectName = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SccAuxPath = "x"
SccLocalPath = "xxx"
SccProvider = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
इसे इंगित करने के लिए यहां दिए गए उत्तर और अन्य टिप्पणियों के लिए धन्यवाद:
दृश्य स्रोत सुरक्षित - दृश्य स्टूडियो में समाधान w / o खोलने से बाइंडिंग को कैसे हटाया जाए
ताबिश के उत्तर के साथ इसे जोड़ना, स्रोत नियंत्रण से समाधान को मैन्युअल रूप से हटाने का सबसे पूर्ण तरीका लगता है।
बाइंडिंग को निकालने के लिए आप Visual Studio: Menu File / Source Control / Advanced / Change Source Control का उपयोग कर सकते हैं।
आप इसे किसी भी SCC ... sln और csproj से हटाकर स्वयं भी कर सकते हैं।
यदि आप अक्सर स्रोत फ़ाइलों को निर्यात करते हैं, तो आप ExportSrc का उपयोग कर सकते हैं । इसके कई विकल्प हैं जैसे TFS बाइंडिंग (डिफ़ॉल्ट रूप से) को हटा दें।
अधिकांश उत्तर एक समाधान प्रदान करते हैं, लेकिन मैं विज़ुअल स्टूडियो 2017 द्वारा प्रदान किए गए समाधान का उपयोग करूंगा।
विज़ुअल स्टूडियो के मेनू बार पर, टीम में जाएं और टीम फाउंडेशन सर्वर से डिस्कनेक्ट को चुनें । बस।
मुझे सिर्फ एम एंड ए बायआउट और टेक ट्रांसफर के बाद टीमफाउंडेशन परियोजनाओं का एक संग्रह विरासत में मिला। 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"
}
}
}