C#.net阅读Visual Studio 2017 privateregistry.bin文件
问题描述:
Visual Studio 2017现在将设置存储到位于用户visual studio appdata中的Hive文件中。文件名是privateregistry.bin。C#.net阅读Visual Studio 2017 privateregistry.bin文件
是否可以使用C#.net动态读取文件?
答
您需要安装nuget包OffregLib。然后你就可以打开privateregistry.bin和遍历其内容是这样的:
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是C#-bridge由Offline Registry Library (offreg.dll)
提供的功能请注意,类Microsoft.Win32.Registry .NET的不允许从磁盘打开任意配置单元文件。这是只能用Offline Registry Library (offreg.dll)
如果你想有很好的用户界面来查看privateregistry.bin的内容,你可以使用regedit.exe。您需要选择HKEY_USERS节点,然后单击文件>加载配置单元...菜单。您选择privateregistry.bin文件,为该配置单元命名(我输入了“VS2017PrivateRegistry”),现在您可以像往常一样查看15.0_Config密钥(注意:完成时使用File> Unload Hive)。 Visual Studio Extensibility (VSX)
位置privateregistry.bin的(VS2017):
C:\用户\用户\应用程序数据\本地\微软\ VisualStudio的\ 15.0_c96087d0 \ privateregistry.bin
嗨,这是一种手动的做法。但我需要使用C#.net动态地点击菜单。 –
我昨天更新了我的答案。请参阅我的编程方法来读取/写入privateregistry.bin。 –
嗨,亚姆获取“资源锁定”错误消息。我认为我们无法在使用此方法打开Visual Studio时读取文件。我想为VSIX包实现这个功能,所以Visual Studio必须打开。 –