Laden...

VS 2022 vergisst Einstellungen

Erstellt von colophonius vor einem Jahr Letzter Beitrag vor einem Jahr 899 Views
colophonius Themenstarter:in
9 Beiträge seit 2011
vor einem Jahr
VS 2022 vergisst Einstellungen

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

2.079 Beiträge seit 2012
vor einem Jahr

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?

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

6.911 Beiträge seit 2009
vor einem Jahr

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!"

colophonius Themenstarter:in
9 Beiträge seit 2011
vor einem Jahr

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.

6.911 Beiträge seit 2009
vor einem Jahr

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!"

colophonius Themenstarter:in
9 Beiträge seit 2011
vor einem Jahr

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.

16.835 Beiträge seit 2008
vor einem Jahr

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.

colophonius Themenstarter:in
9 Beiträge seit 2011
vor einem Jahr

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

2.079 Beiträge seit 2012
vor einem Jahr

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

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

colophonius Themenstarter:in
9 Beiträge seit 2011
vor einem Jahr

Es ist doch noch nicht gelöst. Gestern hatte VS wieder die Einstellungen zurückgesetzt. Ich habe dann folgendes getan:

  • eine Vorlage für die .gitignore besorgt und sie um meine Anpassungen erweitert.
  • mittels git init in einem neuen Ordner ein neues Repo erstellt und die gitignore dorthin versetzt
  • alle Dateien der Solution in den Ordner kopiert und mittels git add dem Rep übergeben und commitet
  • da ich die Repos auf einem Server haben möchte, habe ich mittels git clone --bare ein Abbild auf dem Server abgelegt
  • den lokalen Cache von Visual Studio gelöscht und dann im VS mittels "Repository klonen..." eine lokale Kopie erzeugt

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.

16.835 Beiträge seit 2008
vor einem Jahr

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.