Wie mache ich eine Lösung als saubere Kopie ohne Zuordnung zu TFS? Das Problem ist, dass diese Meldung angezeigt wird, wenn ich versuche, sie zu öffnen. Ich möchte es wie gewohnt ohne TFS-Verbindung öffnen.
Wie mache ich eine Lösung als saubere Kopie ohne Zuordnung zu TFS? Das Problem ist, dass diese Meldung angezeigt wird, wenn ich versuche, sie zu öffnen. Ich möchte es wie gewohnt ohne TFS-Verbindung öffnen.
Antworten:
Wenn Sie die Lösung dauerhaft und vollständig von der Quellcodeverwaltung trennen möchten, versuchen Sie Folgendes:
Wenn Sie die Lösung das nächste Mal öffnen, werden Sie nicht aufgefordert, eine Verbindung zu TFS herzustellen.
Führen Sie die folgenden zwei Schritte aus, um die TFS-Quellcodeverwaltungsbindung vollständig zu entfernen:
*.vssscc
und *.vspscc
Erweiterungen..sln
Datei Ihrer Lösung im Editor und suchen und entfernen Sie den GlobalSection(TeamFoundationVersionControl)
Abschnitt.Weitere Details unter Referenz Link
Bearbeiten Sie die Lösungsdatei und entfernen Sie den folgenden Abschnitt. Es wird nicht dasselbe sein, aber es wird ähnlich sein.
Hinweis : Um die Lösungsdatei zu bearbeiten, gehen Sie zum Projektordner und öffnen Sie die YouSolutionName.sln
Datei mit dem Editor.
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 2
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = <YourTFSURL>
SccLocalPath0 = .
SccProjectUniqueName1 = .
SccLocalPath1 = .
EndGlobalSection
Ich habe nicht genug Ruf, um einen Kommentar abzugeben, wollte aber nur hinzufügen, dass Tabishs Lösung tatsächlich korrekt funktioniert, um die Lösung vollständig aus der Quellcodeverwaltung zu entfernen, insbesondere wenn der TFS-Server aus dem einen oder anderen Grund nicht erreichbar ist (z. B. wenn Sie einen heruntergeladen haben) Projekt, das der Autor vor dem Hochladen nicht aus seiner eigenen Quellcodeverwaltung entfernt hat).
Um jedoch alle Spuren der Quellcodeverwaltung vollständig aus dem Projekt zu entfernen und die Warnungen zu vermeiden, die in den anderen Kommentaren zu dieser Antwort vermerkt sind (z. B. "Die Zuordnungen für die Lösung konnten nicht gefunden werden ..."), müssen Sie auch die entfernen Die folgenden Zeilen aus jeder Projektdatei in der Lösung (anscheinend befanden sich diese in früheren Versionen von VS in der Lösungsdatei, aber in VS2017 befinden sie sich in der Projektdatei für jedes Projekt in der Lösung - z. B. [Projekt] .csproj):
SccProjectName = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SccAuxPath = "x"
SccLocalPath = "xxx"
SccProvider = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Vielen Dank an die markierte Antwort und andere Kommentare hier für den Hinweis:
Visual Source Safe - Entfernen von Bindungen aus der Lösung ohne Öffnen in Visual Studio
Die Kombination mit Tabishs Antwort scheint die vollständigste Methode zu sein, um eine Lösung manuell aus der Quellcodeverwaltung zu entfernen.
Um die Bindung zu entfernen, können Sie Visual Studio verwenden: Menü Datei / Quellcodeverwaltung / Erweitert / Quellcodeverwaltung ändern.
Sie können dies auch selbst tun, indem Sie SCC ... aus sln und csproj entfernen.
Wenn Sie häufig Quelldateien exportieren, können Sie ExportSrc verwenden . Es gibt viele Optionen wie das Entfernen der TFS-Bindung (standardmäßig aktiviert).
Die meisten Antworten lieferten eine Lösung, aber ich würde lieber eine Lösung von Visual Studio 2017 verwenden.
Gehen Sie in der Menüleiste von Visual Studio zu Team und wählen Sie Verbindung vom Team Foundation Server trennen . Das ist es.
Ich habe gerade eine Sammlung von TeamFoundation-Projekten nach einem M & A-Buyout und einem Technologietransfer geerbt. Es gab mehr als 30 Lösungen und eine Menge * .vssscc- und * .vspscc-Dateien.
Basierend auf den obigen Eingaben aller habe ich eine PowerShell-Funktion geschrieben, um einen angegebenen Stammordner zu rekursieren, die Dateien zu löschen und dann die Lösungsdateien zu bearbeiten, um den Abschnitt TeamFoundationVersionControl zu entfernen.
Verwendung ist Remove_TFSfiles "pathname" $booleanflag
.
Verwenden Sie $false
(verwendet -whatif) , um zu sehen, welche Dateien betroffen sind :
Remove_TFSfiles "C:\MyDevFolder" $false
Verwenden Sie zum Löschen dieser Dateien Folgendes $true
:
Remove_TFSfiles "C:\MyDevFolder" $true
Hier ist die Funktion:
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"
}
}
}