无法运行RegAsm:与访问注册表相关的错误

时间:2012-07-06 22:07:38

标签: .net msbuild regasm

我有一个C ++项目,它在几个程序集的预构建事件中调用RegAsm。预构建事件失败,并出现以下错误:

Error 1 error RA0000 : An error occurred while writing the registration
information to the registry. You must have administrative credentials to perform 
 this task. Contact your system administrator for assistance.   RegAsm  

当我检查BuildLog.htm时,它在预构建事件中有以下命令:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm 
    ../../../CommonLib/release/Services.dll 
    /tlb:c:\TFS\Console\Solution\Bridge\Services.tlb

所以我复制了命令并在Visual Studio 2010命令提示符下以 Administrator 的身份运行它,但是出现了同样的错误。

我以前能够很好地构建这个项目。 不确定是什么导致了这个问题。任何帮助表示赞赏。

我是此计算机上Administrators组的成员,并已关闭UAC。

5 个答案:

答案 0 :(得分:2)

右键单击打开cmd,然后“以管理员身份运行”

答案 1 :(得分:0)

检查文件是否被其他进程锁定。您可以使用Sysinternals Process Monitor工具进行检查,以确保该文件未被其他进程锁定或使用。它结合了两个传统Sysinternals实用程序Filemon和Regmon

的功能

另外,请查看StackOverflow

上的类似问题

答案 2 :(得分:0)

我已经通过在HKEY_CLASSES_ROOT键上添加“完全控制”权限(有点基本,但它有效)为我当前登录的用户解决了这个问题。我已经运行了提升的cmd,我的用户在“管理员”组中,但似乎这些还不够。

答案 3 :(得分:0)

很抱歉交叉发布,但这首先出现在谷歌上,所以我保持最新的答案。

我在这里遇到了同样的问题但是使用了相反的目标平台。我通过运行x86版本的regasm而不是x64来解决它。它可能反过来对你有用吗?所以代替

C:\Windows\Microsoft.NET\Framework\v2.0.50727>regasm.exe

使用x64位版本
C:\Windows\Microsoft.NET\Framework64\v2.0.50727>regasm.exe

答案 4 :(得分:0)

以管理员身份打开您的 VS。它清楚地表明某些权限被拒绝。要使其正常工作,您必须确保已在管理员模式下打开它。