Visual Studio是否使用权限较低的进程运行测试?

Fil*_*erg 6 c# unit-testing visual-studio-2010

我有一个应用程序应该从注册表中读取,并在执行控制台应用程序时,我的注册表访问工作完美.

但是,当我将其移至测试时,它返回null:

var masterKey = Registry.LocalMachine.OpenSubKey("path_to_my_key");

所以我的问题是:

Visual Studio是否使用权限较低的进程运行测试?

我测试了一下这给了我的用户:var x = WindowsIdentity.GetCurrent().Name;它给了我与控制台应用程序相同的功能.所以我在这里有点困惑.

我正在使用MS Test Framework,该机器是Windows 2003 64位.

Han*_*ant 1

这不是安全问题。事实上,您正在 64 位操作系统上运行。64 位应用程序的 HKLM\Software 视图与 32 位应用程序不同。64 位应用程序获得“正常”视图,32 位应用程序被重定向到 HKLM\Software\Wow6432Node。EXE决定了进程的位数,mstest运行代码时会有所不同。可能是 32 位。

您需要创建要在 Wow6432Node 树中读取的密钥。或者使常规应用程序具有相同的位数,项目 + 属性,构建选项卡,平台目标 = x86。还可以使用 Corflags.exe 即时更改。