2017-06-15 3 views

Antwort

1

Sie müssen das nugget-Paket OffregLib installieren. Dann können Sie privateregistry.bin öffnen und iterieren dessen Inhalt wie folgt aus:

using (OffregHive hive = OffregHive.Open(@"D:\Daten\VisualStudio2017\2\privateregistry.bin")) 
{ 
    string fullName = hive.Root.FullName; 
    OffregKey ork = hive.Root.OpenSubKey(@"Software\Microsoft\VisualStudio"); 

    foreach(SubKeyContainer key in ork.EnumerateSubKeys()) 
    { 
    System.Console.WriteLine(key.Name); 
    } 
} 

OffregLib ist ein C# -Brücke auf die Funktionalität zur Verfügung gestellt von Offline Registry Library (offreg.dll)

Bitte beachten Sie, dass die Klasse Microsoft.Win32.Registry von .NET erlaubt es nicht, eine beliebige Hive-Datei von der Festplatte zu öffnen. Dies ist etwas, das nur mit Offline Registry Library (offreg.dll)

getan werden kann Wenn Sie eine schöne UI haben wollen, um den Inhalt von privateregistry.bin zu betrachten, können Sie regedit.exe verwenden. Sie müssen den Knoten HKEY_USERS auswählen und auf das Menü Datei> Struktur laden ... klicken. Sie wählen die Datei privateregistry.bin aus, geben der Struktur einen Namen (ich habe "VS2017PrivateRegistry" eingegeben) und jetzt können Sie den 15.0_Config-Schlüssel wie gewohnt sehen (Hinweis: Verwenden Sie Datei> Unload Hive, wenn Sie fertig sind). Visual Studio Extensibility (VSX)

Lage privateregistry.bin (VS2017):

C: \ Benutzer \ Benutzer \ AppData \ Local \ Microsoft \ Visualstudio \ 15.0_c96087d0 \ privateregistry.bin

+0

Hallo, das ist eine manuelle Vorgehensweise. aber ich muss dies mit C# .net dynamisch beim Klicken auf ein Menü tun. –

+0

Ich habe meine Antwort gestern aktualisiert. Bitte beachten Sie meine programmatische Möglichkeit, privateregistry.bin zu lesen/schreiben. –

+0

Hallo, ich bekomme "Ressource gesperrt" Fehlermeldung. Ich denke, wir können die Datei nicht lesen, wenn Visual Studio mit dieser Methode geöffnet ist. Ich wollte diese Funktion für ein VSIX-Paket implementieren, damit Visual Studio geöffnet sein muss. –