我正在为我工作的公司创建一个应用程序,它将为我们提供的一些软件备份数据。它可以选择将 SQL 数据库、文件夹、文件和注册密钥添加到备份作业中,然后将其放入 Zip 文件中。还有一些选项可以在需要时恢复备份。
我在注册表备份和还原方面遇到问题。我已经经历了多次尝试让它工作的迭代,但我已经以最能说明我的问题的方式简化了它,我希望有人可以帮助解决。
本质上,我通过使用带有命令行参数的 regedit.exe 来导入“.reg”文件。我尝试通过使用 ProcessStartInfo() 构建它来做到这一点,但它不起作用。因此,为了测试问题,我创建了一个批处理文件并按如下方式运行它:
File.WriteAllText("ImportReg.bat", "regedit /s /i MyRegFile.reg");
Process.Start("ImportReg.bat");
然而,这不起作用。
批处理文件创建成功,REG文件有效。这两个文件与 EXE 位于相同的位置,因此我认为问题不应该在于正在使用的目录。如果我自己从这个位置运行批处理文件,它会成功导入注册表文件。我是我正在测试的机器上的完整管理员。
我也遇到了从注册表导出的问题。注册表的某些部分可以正常导出,而其他部分则不能。但是,如果我将导出设置为像上面的导入那样的批处理文件,那么它每次都可以工作。
有人能帮忙吗?我看不到为什么我的批处理文件有效,但当它通过 Process.Start 运行时却看不到。任何建议将不胜感激。