8

尝试在 Win2008 Server 中运行 regasm 时:

regasm "C:\Program Files\FooProg\Bar.dll" /tlb:"C:\Program Files\FooProg\Bar.tlb"

我收到以下错误:

RegAsm:错误 RA0000:保存导出的类型库时出错:访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

这是什么意思

4

12 回答 12

13

最有可能出现该错误是因为您无法删除相应的 .tlb 文件。另外两个建议:

  1. 停止 IIS 并再次尝试注册:
  2. 停止 IIS,从 DLL 文件所在的位置删除 .tlb 文件,然后再次尝试注册。
  3. 关闭所有 IE/IIS/DEV 工具(它们可能使某些文件处于只读状态),然后尝试注册您的 DLL
于 2010-04-07T21:50:39.697 回答
10

您运行 regasm 的帐户无权写入 C:\Program Files\FooProg\,这就是 regasm 无法写入 .tlb 的原因。在具有管理员权限的帐户下运行 regasm。

于 2009-12-04T15:41:13.270 回答
3

您使用的帐户需要管理员权限。

于 2009-12-04T15:41:00.737 回答
3

在我的情况下,.dll 和 .tlb 文件都是只读的,删除只读检查对我有用,我也关闭了使用它的进程(Visual Studio IDE)。

于 2011-05-02T20:42:27.737 回答
2

我有一个流浪的 dllhost.exe 进程。杀死它允许我删除 .tlb 文件并重新注册。其他方法(停止 IIS、停止应用程序池、关闭所有 IDE)没有效果。

于 2014-10-03T20:22:48.517 回答
1

最有可能出现该错误是因为您无法删除相应的 .tlb 文件。其他两个建议: 1. 停止 IIS 并再次尝试注册: 2. 停止 IIS,从 DLL 文件所在的位置删除 .tlb 文件,然后再次尝试注册。

于 2010-04-07T21:33:16.337 回答
1

如果您未在/tlb参数中指定完整路径,您也可能会遇到此问题。

它会尝试写入C:\windows\system32. 即使您以管理员身份运行,默认情况下您也无权写入该目录。

解决方案只是在参数中提供完整路径(指向您有权访问的目录)/tlb

于 2013-02-04T19:39:51.793 回答
1

由于某个进程挂接了您尝试注册或复制的 .dll 或 .tlb 文件,您很可能会收到错误消息。重新启动您的计算机并重试或删除 .tlb 文件并重新构建它以确保您可以访问它。

于 2013-04-09T14:03:00.247 回答
1

对我来说,文件正在被其他应用程序使用

于 2019-05-28T16:25:59.247 回答
0

首先,在 regasm 找到 dll 文件之前,我必须删除我的 dll 路径中的所有空格。

但是当我尝试在目标周围加上引号时,它仍然有效。

于 2012-10-30T21:06:44.453 回答
0

Win 7(如果已经是管理员) - 您可以通过右键单击并访问属性、安全选项卡、单击编辑、检查允许权限来启用文件权限,例如完全控制。

于 2013-11-22T00:26:52.250 回答
0

这不是解决方案。避免这个陷阱

不做:
regasm "Bar.dll" /tlb:"Bar.dll"
这样做
 regasm "Bar.dll" /tlb:"Bar.tlb"

在此处输入图像描述

于 2021-11-27T10:11:51.307 回答