尝试在Win2008 Server中运行regasm时:
regasm "C:\Program Files\FooProg\Bar.dll" /tlb:"C:\Program Files\FooProg\Bar.tlb"
我收到以下错误:
RegAsm:错误RA0000:保存导出时发生错误 类型库:访问被拒绝。 (HRESULT的例外情况:0x80070005 (E_ACCESSDENIED))
这是什么意思
答案 0 :(得分:13)
最常出现该错误,因为您无法删除相应的.tlb文件。另外两个建议:
答案 1 :(得分:9)
运行regasm的帐户无权写入C:\ Program Files \ FooProg \,这就是regasm无法写入.tlb的原因。在具有管理员权限的帐户下运行regasm。
答案 2 :(得分:3)
您使用的帐户需要管理员权限。
答案 3 :(得分:1)
最常出现该错误,因为您无法删除相应的.tlb文件。另外两个建议: 1.停止IIS并尝试再次注册: 2.停止IIS,从DLL文件的任何位置删除.tlb文件,然后再次尝试注册。
答案 4 :(得分:1)
在我的情况下,.dll和.tlb文件都是ReadOnly,删除了为我工作的ReadOnly检查,我也关闭了使用它的过程(Visual Studio IDE)。
答案 5 :(得分:1)
如果未在/tlb
参数中指定完整路径,也可能会出现此问题。
它会尝试写入C:\windows\system32
。即使您以管理员身份运行,默认情况下您也无权写入该目录。
解决方案只是在/tlb
参数中提供完整路径(到您有权访问的目录)。
答案 6 :(得分:1)
由于进程挂钩到您尝试注册或复制的.dll或.tlb文件,很可能会收到错误。重新启动计算机,然后重试或删除.tlb文件并重建它以确保您可以访问它。
答案 7 :(得分:1)
我有一个迷路的dllhost.exe进程。杀死它允许我删除.tlb文件并重新注册。其他方法(停止IIS,停止应用程序池,关闭所有IDE)都没有效果。
答案 8 :(得分:0)
首先,我必须在regasm找到dll文件之前删除路径中的所有空格。
但是当我尝试在目标周围使用引号时,无论如何都会有效。
答案 9 :(得分:0)
Win 7(如果已经是管理员) - 您可以通过右键单击并访问属性,安全选项卡,单击编辑,检查允许权限来启用文件权限,例如,完全控制。
答案 10 :(得分:0)
对我来说,文件正在被其他应用程序使用