Hallo Community,
ich bin vor kurzem von VS 2019 auf VS 2022 umgestiegen. Im Zuge dessen habe ich auch von Visual Source Safe auf git umgestellt und die Solutions in lokale Repositorys überführt. Das hat eigentlich alles ohne große Probleme geklappt. Das Arbeiten mit git und VS 2022 funktioniert.
Allerdings. Wenn ich ein Rep öffne, muss ich jedesmal bestimmte Einstellungen erneut konfigurieren. Dazu zählen z. B. die Startprojekte. Ich habe daraufhin versucht zu erkunden, wo diese Informationen gespeichert werden. Meiner Meinung nach liegen diese Info's in den .suo-Dateien. Ich hatte nun die Idee, diese Dateien zu untersuchen und die Berechtigungen auf diese Dateien zu prüfen. Sieht alles i.O. aus. Auch das SysInternals-Tool Procmon brachte keine neuen Erkenntnisse. So richtig eine Idee (außer eine komplette Neuinstallation) habe ich jetzt nicht mehr.
Habt Ihr noch Ideen?
Beste Grüße
VS 2022 Professional, git 2.37.3
Ich arbeite mit VS 2022 Preview und git und hatte bisher nie solche Probleme.
Solche Einstellungen wie das Start-Projekt werden im ".vs"-Ordner gespeichert.
Wird dieser Ordner vielleicht durch irgendetwas gelöscht, oder ist er im git hinterlegt?
Dieser Ordner sollte nie im git hinterlegt werden, ebenso wenig, wie die ".csproj.user"-Dateien und die Inhalte der "bin"- und "obj"-Ordner.
Es gibt auch Vorlagen für ".gitignore"-Dateien, die auf Visual Studio zugeschnitten sind - hast Du sowas?
Hallo colophonius,
Wenn ich ein Rep öffne, muss ich jedesmal bestimmte Einstellungen erneut konfigurieren. Dazu zählen z. B. die Startprojekte.
Diese Benutzer-Einstellungen werden im .vs
-Ordner im Wurzelverzeichnis des Repo gespeichert (is ein Hidden-Folder).
Dieser sollte auch nicht in die Versionskontrolle eingecheckt werden -- eben da "Benutzer-Einstellungen".
Wenn dieser beim Auschecken nicht vorhanden ist, so tritt eben das beschriebene Verhalten auf.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Danke für eure Erklärungen. Diese decken sich mit meinem Wissen über Source-Verwaltungen.
Ich habe .gitignore-Dateien. Diese sind von VS automatisch erstellt worden, als ich z.B. die obj-Ordner aus der Überwachung nahm. Auch der .vs-Ordner ist in der Datei hinterlegt. Einzig die .csproj.user-Dateien liegen noch im Repo. Diese habe ich jetzt beispielhaft für ein Repo manuell in der .gitignore-Datei hinterlegt.
Eine Änderung hat sich leider nicht ergeben.
Ich hatte jetzt noch die Idee, dass der Virenscanner ein Schreiben im Ordner .vs verhindert. Aber dem ist nicht so. Ein Binärvergleich mit einer zuvor erstellten Kopie ergab Unterschiede.
Hallo colophonius,
Wenn ich ein Rep öffne
Öffnest du das in einen leeren Ordner?
Dann ist der .vs-Ordner ja auch nicht da.
Wenn ich mit Projekten öfter arbeite, so sind diese lokal vorhanden und ich brauch nur per Pull / Fetch die Änderungen holen. Die lokalen Einstellungen in .vs, .suo bleiben davon unberührt.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Meine Repos liegen ja derzeit nur lokal vor. Mit Öffnen meine ich, das Auswählen eines Repos unten rechts in VS oder über das Menü Git.
Ich habe ja noch ein mageres Verständnis von git. Vielleicht sollte ich mein lokales Repo einfach mal nach github pushen und dieses dann klonen.
Wenn eine Datei von git getrackt wird, bringt es nichts, sie nachträglich einfach nur zu ignorieren; man muss sie auch löschen (forcen).
Ansonsten gilt sie vom ignore ausgeschlossen, weil sie eben schon mal bekannt war.
*.user/*.suo Dateien sind immer Benutzer- und Maschinenbezogen, sollten daher niemals eingecheckt werden, wie auch bin/obj und .vs (bzw .idea für Rider-Umgebungen).
Wenn ich ein Rep öffne, muss ich jedesmal bestimmte Einstellungen erneut konfigurieren. Dazu zählen z. B. die Startprojekte.
Meinst Du "Startprojekte" auf Projekt-Ebene, dann wird genau das in den *-user Dateien hinterlegt (wie auch offene Tabs etc).
Redest Du von Projekte, die beim Start von VS aufgelistet werden (also ohne Repo-bezug):
Diese Infos werden in Deinem Benutzerprofil gespeichert, das im AppData/Local-Verzeichnis Deines Windows-Benutzerprofils liegt.
Dann wäre das ein Zeichen, dass bei Deiner Installation oder bei diesen Dateien irgendwas krumm ist, wenn Du dauernd Benutzerprofil-bezogene Dinge verlierst.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Meinst Du "Startprojekte" auf Projekt-Ebene, dann wird genau das in den *-user Dateien hinterlegt (wie auch offene Tabs etc).
Nein, ich meinte die in der Projektmappe hinterlegten Projekte, die z. B. beim Debuggen gestartet werden sollen. In meinen Projektmappen gibt es immer ein Projekt für den App-Server und den Client. Und beide sollen natürlich starten.
Ich habe es jetzt hinbekommen, indem ich das Repo mittels forcen aufgeräumt und die gitignore nochmals angepasst habe.
Vielen Dank an Euch
Und am besten Du nutzt eine der .gitignore-Templates als Grundlage, da ist das dann alles für die Zukunft voreingestellt.
Visual Studio bringt so eine mit (Git Changes -> Create Git Repository -> .gitignore template -> Default)
Oder Du verwendest, was Du online so findest, z.B.: https://github.com/github/gitignore
Es ist doch noch nicht gelöst. Gestern hatte VS wieder die Einstellungen zurückgesetzt. Ich habe dann folgendes getan:
Aber auch das hat nicht den vollen Erfolg gebracht.
Ich denke, dass dies kein Problem von git ist, sondern von VS. Solange ich VS starte und immer dasselbe Repo öffne, bleiben die Einstellungen erhalten. Erst wenn ich ein anderes Repo öffne, setzt VS die Einstellungen zurück.
Dann wirds an VS oder an irgendeiner Extension liegen.
Ich öffne >50 Solutions Projekte pro Woche und ich glaube mir ist das noch nie in den letzten 10 Jahren mit VS passiert.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code