小编The*_*ace的帖子

Process.Start()和手动运行有什么区别?

我正在为我工​​作的公司创建一个应用程序,它将备份我们提供的某些软件的数据.它具有将SQL数据库,文件夹,文件和注册表项添加到备份作业的选项,然后将其放入Zip文件中.还可以选择在需要时还原备份.

我在注册表备份和还原方面遇到问题.我已经经历了许多迭代试图让这个工作,但我已经简化了它,以最好地说明我的问题,我希望有人可以帮助.

基本上我通过使用带命令行参数的regedit.exe导入".reg"文件.我试过通过使用ProcessStartInfo()构建它,但它没有用.所以为了测试问题,我正在创建一个批处理文件,并按如下方式运行它:

    File.WriteAllText("ImportReg.bat", "regedit /s /i MyRegFile.reg");
    Process.Start("ImportReg.bat");
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用.

批处理文件已成功创建,REG文件有效.这两个文件都与EXE位于同一个位置,所以我认为问题不在于使用哪个目录.如果我自己从这个位置运行批处理文件,它会成功导入注册表文件.我是我正在测试它的机器上的完整管理员.

我也有从注册表导出的问题.注册表的某些部分导出正常,而其他部分则没有.但是,如果我将导出设置为像上面导入的批处理文件那么它每次都有效.

有人能帮忙吗?我看不出为什么我的批处理文件有效,但是当它通过Process.Start运行时却看不到.任何建议都会受到大力赞赏.

c# windows regedit process.start

5
推荐指数
1
解决办法
1889
查看次数

Moq VerifyNoOtherCalls()方法的FakeItEasy等效项是什么

我目前是Moq用户,正在研究其他模拟框架。

在进行单元测试时,我经常调用_mock.VerifyNoOtherCalls(),因此可以确定除了已经验证的交互之外,没有意外的交互。

我搜索了FakeItEasy文档,但在其框架中找不到等效的选项。谁能建议我该怎么做?

c# moq fakeiteasy

3
推荐指数
1
解决办法
323
查看次数

标签 统计

c# ×2

fakeiteasy ×1

moq ×1

process.start ×1

regedit ×1

windows ×1