4

在创建 Web 应用程序期间,我收到以下弹出消息:

“Visual Studio 没有权限从注册表中读取模板信息,这通常是由注册表权限问题引起的。”

任何人有任何解决方案?请帮我。我想看看 Visual Studio 的新功能。

谢谢

4

6 回答 6

2

这可能是一个很晚的答案,但我遇到了同样的问题,我在 msdn 页面上找到了解决方案:这是原始解决方案消息:

我在 Visual Studio 2010 和 Windows 7 中遇到了这个问题。我还没有找到这个问题的根源,但是我发现很多 Visual Studio 用户都遇到了它。我尝试了迈克尔的解决方案来解决这个问题,但它造成的伤害比其他任何事情都大。它甚至让 Visual Studio 启动到“Shell 模式”并告诉我注册无效。使用系统还原我回滚了 subinacl 工具和 Michaels 脚本所做的更改(它可能不适用于 Windows 7,首先导致错误)。作为一个长期的 V​​isual Studio 用户和一个很好的故障排除者,我知道 subinacl 是解决问题的正确工具,但脚本对于我的特定设置是不正确的。我将脚本调整如下:(这是一个批处理脚本)

    cd /d "%programfiles% (x86)\Windows Resource Kits\Tools"
    subinacl /subkeyreg HKEY_CLASSES_ROOT\VisualStudio* /setowner=domain\user
    subinacl /subkeyreg HKEY_CLASSES_ROOT\VisualStudio* /grant=everyone=f         
    /grant=administrators=f /grant=system=f
    pause

我试图在授权命令中包含“setowner”命令(在同一行),但它会一直抛出错误。此脚本修复了我在 Windows 7 和 Visual Studio 2010 中的“请求的注册表访问权限”。如果您想尝试此脚本:按照 Michael 的说明操作,但使用本文中提供的脚本并将“域\用户”替换为适当的凭据。如果您将其安装在不同的地方或未使用 64 位操作系统,您可能还需要更改 Windows 资源工具包的路径。在使用此脚本之前,请备份您的注册表。

我希望这有帮助!

*原始网页是:http ://social.msdn.microsoft.com/Forums/en-US/c273b0e1-7f46-4065-afaf-4edf285d2531/vista-wpfapplication-requested-registry-access-is-not-allowed

于 2013-09-06T17:44:35.593 回答
1

我也有这个问题。关注了 user2698666 的帖子,但没有成功。卡住进程监视器,发现有更多的注册表项导致了一个名为 WDExpress 的问题。以为我会发布我的修复以防其他人有同样的问题:

subinacl /subkeyreg HKEY_CLASSES_ROOT\VisualStudio* /setowner=domain\user

subinacl /subkeyreg HKEY_CLASSES_ROOT\VisualStudio* /grant=everyone=f /grant=administrators=f /grant=system=f

subinacl /subkeyreg HKEY_CLASSES_ROOT\WDExpress* /setowner=domain\user

subinacl /subkeyreg HKEY_CLASSES_ROOT\WDExpress* /grant=everyone=f /grant=administrators=f /grant=system=f

于 2014-02-23T11:26:23.247 回答
1

我遇到了 Visual Studio 13 的问题,我想在其中为我新创建的解决方案添加一个 webtest 项目。尝试了上述技巧来设置 ACL,但没有奏效。

最后使用 Procmon.exe 找到 Visual Studio 正在执行的操作(仅包括进程名称 devenv.exe)并查找结果 Access Denied。它会告诉您哪些注册表项不可访问。

就我而言,是导致问题的 regkey HKCR.webtest (HKEY_CLASSES_ROOT.webtest)。获得所有权并分配访问权解决了我的问题。

我不知道问题的根源是怎么回事。

于 2014-11-09T10:28:40.780 回答
0

以上对我没有用,因为即使我是管理员,我也一直被 regedit 拒绝。

我在另一个网站上找到了这个:

psexec -i -d -s c:\windows\regedit.exe

psexec 可在此处从 Microsoft 获得

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

这给了我完整的注册表访问权限。我试图为管理员所有者提供上述特定键,但 VS 2012 express 仍然抛出该注册表权限错误。所以我最后只是将Administrator添加到regedit中整个HKEY_LOCAL_MACHINE\SOFTWARE\Classes\目录的权限列表中。然后让管理员完全控制。

这行得通。我现在可以创建一个没有该地狱般错误的项目!

于 2014-05-25T10:07:22.250 回答
0

这个问题与所讨论的上下文中的权限无关。该问题是由于 Microsoft 的安装程序测试马虎导致注册表中的模板文件路径不正确引起的。当用户尝试启动新项目时,不正确的路径会引发错误,并且按照 Microsoft 的风格,会显示关于权限的通用且无意义的错误消息。

这里是具体的问题。在某些机器中(假设C:是主驱动器并且user1是用户的登录名和版本 2013)模板文件的位置是C:\users\user1\my documents\visual studio 2013\projects. 不幸的是,安装程序在注册表中写入的安装路径是C:\users\user1\documents\visual studio 2013\projects. 因此,它指向\documents而正确的位置是\my documents。可以肯定的是,查看您的visual studio 2013\projects文件夹所在的位置 - 文档或我的文档 - 并将注册表项更改为正确的位置。

对于我的示例,密钥HKEY_CURRENT_USER\software\Microsoft\VisualStudio\12.0\NewProjectDialog\MRUSettingsLocalProjectLocationEntries位于路径中的Value0条目中。检查并更改以使其准确指向您的项目文件夹所在的位置。

于 2014-11-16T20:28:56.117 回答
0

Lars Meldgard 对 ProcMon 的使用是一个很好的提示,对我很有帮助。我只是想在 ProcMon 中包含一张拒绝访问的图片。我必须一次完成一个注册表项——这不是唯一的一个。这是非常麻烦和缓慢的,但我能够将它们一一敲掉,并赋予每一个完整的权利。(这部分也很麻烦,因为我必须取得所有权,然后关闭 regedit,然后再返回,这样我就可以设置权限;你不能一举搞定。)

在此处输入图像描述

于 2016-09-09T01:00:22.157 回答