Ich verwende den SettingsManager
in meiner Visual Studio-Erweiterung, um Benutzereinstellungen zu speichern.
Ich habe eine benutzerdefinierte WPF-Optionen-Seite, wie in diesem Beitrag beschrieben . Ich möchte auch meine Erweiterung einrichten, um mit den Import / Export-Einstellungen zu arbeiten, also folgte ich dem Erstellen einer Optionen-Seite und Erstellen einer Einstellungs-Kategorie Seiten, um dies meinen Paketattributen hinzuzufügen:
%Vor% Ich habe es erfolgreich als Überschrift unter Import / Export Einstellungen erscheinen lassen, aber keine meiner Daten, die mit SettingsManager
gespeichert wurden, erscheint nach dem Export. Ich habe die Optionen unter ProvideProfile
und ProvideOptionPage
überprüft und versucht, SupportsProfiles = true
einzustellen, aber das hat nicht geholfen.
Wie hänge ich die beiden Systeme an?
(bearbeiten) Ich habe Process Monitor ausgeführt und die SettingsManager-Schlüssel hier gefunden (CollectionPath UnitTestBoilerplateGenerator):
%Vor%Und die eingebauten Optionen hier gespeichert (Beispiel von einer anderen Erweiterung):
%Vor%Es scheint also, als würden sie in getrennten Bereichen gespeichert. Gibt es eine Möglichkeit programmgesteuert zu diesen integrierten Optionen zu schreiben oder den benutzerdefinierten CollectionPath in den Import / Export aufzunehmen?
Ich habe einen Weg gefunden, es zu tun. Sie müssen in einen Collection-Pfad schreiben, der dem vollständigen Typnamen Ihres Optionsdialogtyps entspricht. Meine war UnitTestBoilerplate.View.OptionsDialogPage
, also habe ich einen Collection-Pfad von ApplicationPrivateSettings\UnitTestBoilerplate\View\OptionsDialogPage
verwendet. Ich musste auch eine Dummy-Eigenschaft für den Optionsdialog erstellen, um VS dazu zu verleiten, die Einstellung tatsächlich zu exportieren. Wenn ich also in MyProperty
schreiben wollte, brauchte ich
auf OptionsDialogPage.
Allerdings scheint das ein großer Hack zu sein, der bei einer neuen Version von VS kaputt gehen könnte. Ich würde eine elegantere Lösung lieben, wenn jemand eine hat.
Auch eine wirklich seltsame Einschränkung ist, dass, wenn Sie "VisualStudio" im Schlüsselnamen für eine Zeichenfolgeneinstellung haben, es als "1 * null *" zurückkommt, egal was Sie dort hinzufügen.
Tags und Links c# visual-studio-2017 visual-studio-extensions