私が働いている会社のために、私たちが提供するソフトウェアのデータをバックアップするアプリを作成しています。SQL データベース、フォルダー、ファイル、レジストリ キーをバックアップ ジョブに追加するオプションがあり、それらは Zip ファイルに入れられます。必要に応じてバックアップを復元するオプションもあります。
レジストリのバックアップと復元に問題があります。これを機能させるために何度も繰り返してきましたが、誰かが助けてくれることを願っている私の問題を最もよく説明する方法で単純化しました。
基本的に、コマンド ライン引数を指定して regedit.exe を使用して、「.reg」ファイルをインポートしています。ProcessStartInfo() でビルドしてこれを試みましたが、うまくいきませんでした。そのため、問題をテストするために、代わりにバッチ ファイルを作成し、次のように実行しています。
File.WriteAllText("ImportReg.bat", "regedit /s /i MyRegFile.reg");
Process.Start("ImportReg.bat");
ただし、これは機能しません。
バッチ ファイルは正常に作成され、REG ファイルは有効です。どちらのファイルも EXE と同じ場所にあるため、どのディレクトリが使用されているかは問題ではないと思います。この場所から自分でバッチ ファイルを実行すると、レジストリ ファイルが正常にインポートされます。私はこれをテストしているマシンの完全な管理者です。
レジストリからのエクスポートにも問題がありました。レジストリ エクスポートの一部の部分は正常にエクスポートされ、他の部分は正常にエクスポートされません。ただし、上記のインポートのようにバッチ ファイルとしてエクスポートを設定すると、毎回機能します。
誰でもこれを手伝ってもらえますか?バッチ ファイルが機能する理由がわかりませんが、Process.Start を介して実行された場合はわかりません。どんな提案でも大歓迎です。