问题标签 [regasm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1945 浏览

.net - Windows Server 2008 上的 IPHLPAPI.DLL 问题

我正在尝试安装一个使用 API GetIPAddrfromTable 堆栈的应用程序。当我启动应用程序时,我收到错误“在 IPHLPAPI.dll 中找不到过程入口点”

我注意到 dll 文件很旧,所以我尝试替换它,但 Windows server 2008 不允许任何人将任何文件复制到 system32 文件夹,即使您是管理员。

我尝试运行 sfc,它更新了 IPHLPAPI.DLL,我尝试注册新的 DLL,但我收到错误消息“已加载模块 iphlpapi.dll 但找不到入口点 DLLRegisterServer。确保它是一个有效的 DLL 或 OCX 文件”。

我尝试搜索错误消息,他们说了一些关于使用 regasm 的信息,但我收到错误“错误 RA0000:加载失败,因为它不是有效的 .NET 程序集”

这是ak吗

0 投票
1 回答
10219 浏览

c# - 注册使用 VS C# 2010 创建的 COM 对象

我昨天用 C# 创建了一个 COM 对象,这在我的 VS 2010 项目的 bin/release 目录中生成了三个文件(comclass.dll、comclass.pdb 和 comclass.tlb)。现在,当我在项目中构建解决方案时,VS 会在开发 PC 上自动为我注册该类,我可以毫无问题地从 Powershell 访问 COM 对象及其方法。但是,当我将这三个文件复制到另一台机器上并尝试使用 regsvr32 注册 dll 时,它告诉我

模块“comclass.dll”已加载,但未找到入口点 DllRegisterServer。

确保“comclass.dll”是有效的 DLL 或 OCX 文件,然后重试。

regasm与 .tlb 文件上的参数一起使用/tlb会给我类似的信息。所以我有点难过。任何人都知道我应该如何从这里开始?

0 投票
2 回答
15317 浏览

.net - Regasm - 无法定位输入组件

我编写了一个 .NET 程序集并使用 Regasm 在我的本地计算机上成功注册了它,但是当我尝试在目标服务器中执行此操作时,我收到以下错误。

Regasm :error RA0000 : 无法找到输入程序集“完整 dll 路径”或其依赖项之一。

我的本地机器是 Windows XP 32 位机器,而服务器是 32 位 Windows 2003 Server。

我正在使用以下命令进行 regasm: Regasm "full file path" /tlb:filename.tlb

有谁知道我在这里想念什么?

谢谢。

0 投票
1 回答
1897 浏览

com - 在 WXS 中,如何引用通过不同组件安装的文件?

这个问题是指 heat.exe 的输出。关于在 MSI 中为 COM 互操作注册一些 .NET 程序集,我正在尝试做“正确的事情”。Regasm.exe 是错误的

Rob Mensching 说,直接调用 regasm.exe 很简单,而且“大部分时间”都有效,但显然不是一个好主意。该博客文章解释了为什么这不是一个好主意,并提供了一个非常简单的解决方案。不幸的是,2004 年的帖子暗示了现在已弃用或不支持的 wix 功能。我猜,那里描述的解决方案不再有效,但该博客文章中提出的问题仍然存在。

显然,该问题的“正确”解决方案是运行 heat.exe,然后“修复”目录引用等。这听起来很简单,这就是我想要做的。

好的,所以我正在尝试做正确的事情。另外我不想 GAC 程序集,这意味着我必须使用codebase参数进行 COM 注册。heat.exe 的输出包括如下内容:

第一个问题:究竟是Value="file:///[#fil4B562083D141F5A2F29E28A1BD09AF3E]"什么?

在我看来,这fil4B562083D141F5A2F29E28A1BD09AF3E是一个由 Wix 生成的 Id;id 属于 .wxs 文件中的一个 File 元素,它指的是包含命名的 .NET 类的程序集 (DLL) 的路径。现在,那里的八爪鱼到底是干什么用的?方括号呢?和file:/// 前缀?帮助我理解这个语法。

我问的原因 - 我不想使用这个 ID。我已经有一个文件 ID,它反映了文件的实际含义,但事实并非如此。

但是有问题的文件安装在不同的组件中。当我尝试引用该文件时,我收到一堆此类错误消息:

我该如何解决这个问题?

我想我不想要File这个组件中的另一个元素,指的是同一个文件系统文件。它已经安装了不同的组件(相同的功能)。我怎样才能参考它?

基本上我想要一个类似的元素FileRef,但这显然不存在。

0 投票
3 回答
1741 浏览

visual-studio-2008 - 在 VB6 项目中使用类型库 (.tlb),ActiveX 创建对象失败

我从 C# Visual Studio 2008 创建了一个 dll 和 tbl 文件。

Regasm AssemblyName.dll /tlb: FileName.tlb /codebase将它注册到我的本地服务器。

使用 tlb 参考。编译它,它在我的开发PC上运行良好。

在我制作了一个exe后,在其他PC上运行它,提示错误消息“ActiveX无法创建对象”。

我需要为我部署到的每台机器进行 Regasm 吗?

如果部署 PC 中没有 Visual Studio 怎么办?找不到 Regasm。

0 投票
0 回答
245 浏览

regasm - 带有 COM 注册的 WebSetUp

我在解决方案中有 ac#asp.net 网站项目(VS 2008)。在这个解决方案中,有 6 个 c# 类库项目,每个都有 wcf 服务类。

asp.net网站项目中引用了所有6个类库项目dll,并显示在bin目录中。所以这个 asp.net 网站是我们的 wcf 服务的托管服务器。我的一个 c# 类库项目正在使用 C++ dll,它在应用程序中调用另一个 C# COM dll。因此,这个 C# COM dll 使用 Regasm.exe 注册为 COM,并且 C++ 使用 P/Invoke 加载,它都在开发环境中工作。

现在,我想设置这个服务器应用程序,并且需要将它托管在 IIS 7.5(Win 7 32 位操作系统)中。我从 Internet 下载了 Web 部署工具,并使用 VS Web 设置和部署项目创建了设置。我无法通过 SetUp 在安装机器中注册 C# COM dll。

在安装项目中,我添加了 C# COM dll (myCOM.dll)。当我将 myCOM.dll 添加到 Web 设置项目的 Web 文件夹中时,它会添加另外 2 个文件,例如 myCOM.DLL 和 myCOM.tlb 以及 myCOM.dll。

我尝试了以下方法:

第一种方法:

我删除了 myCOM.DLL 和 myCOM.tlb。然后我选择了 myCOM.dll 并在属性窗格中设置了 Register vsdrCOM。

然后我安装在一台机器上。但 myCOM.dll 未注册,应用程序文件夹/bin 文件夹中未生成 tlb 文件。我不知道为什么???

第二种方法。

我创建了一个批处理文件,其中包含从批处理文件的当前位置注册dll的命令,如下图所示:

ECHO 注册开始...

暂停

Regasm.exe "myCOM.dll" /tlb:myCOM.tlb \codebase --> [这将在 myCOM.dll 的同一位置生成 tlb]

然后我创建了一个自定义安装程序,并将此安装程序添加为设置项目中的自定义操作。[安装自定义操作]。在这个安装程序类中,我重写了 Install 方法并编写了用于从位置 C:\inetpub\wwwroot\MyApp\bin 执行批处理文件的代码。

然后我尝试将它安装在机器上。安装时,批处理 (cmd) 的控制台窗口出现一秒钟,然后 cmd 窗口突然关闭。安装完成后,我查看了 c:\inetpub\wwwroot\MyApp\bin 文件夹,什么都没有。

我的安装可能有什么问题???

请对此有所了解。

0 投票
1 回答
482 浏览

dll - 如何在 nsis 脚本中使用 regasm 在同一个宏中注册两个 dll:s?

我正在尝试使用带有这些参数的宏注册两个 dll:s:

!macro RegisterWithRegAsm 标志可执行类型库

我这样称呼宏:

!insertmacro RegisterWithRegAsm "" "Dll1.dll" "Dll1.tlb" !insertmacro RegisterWithRegAsm "" "Dll2.dll" "Dll2.tlb"

问题是我只能运行一次宏,因为 NSIS 第二次抱怨我已经声明了一个标签:

inst__: StrCpy $R1 '$R0${DOT_NET_VERSION_2_SP2}\RegAsm.exe "$INSTDIR\${APP_NAME_COMPACT}\${executable}" /codebase /tlb:"$INSTDIR\${APP_NAME_COMPACT}\${typeLib}" /沉默的'

如何将此标签(和 u_inst_)移动到宏之外,以便可以多次使用它?

任何人都知道一个好的参考网站吗?我查看了 nsis 网页,但找不到对多个 dll 处理的引用。

感谢您的任何想法!

0 投票
1 回答
3393 浏览

.net - 如何使用 Regasm.exe 完全注销 AssemblyFile

我尝试了以下命令来注销 AssemblyFile:

但是,它仍然留下这样的注册表项:

那么,有没有办法自动删除左侧条目?谢谢

0 投票
0 回答
1628 浏览

.net - 如何在我的程序安装程序中找到 regasm.exe?

我的程序使用 regasm.exe .net 类注册。在我的计算机上regasm.exe位于C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319文件夹,但在另一台计算机上它可能位于 ...\v4.0.1234 甚至 ...\v4.2.1234。

我怎么知道它在哪里,所以我可以为我的程序创建一个安装程序?

0 投票
1 回答
1706 浏览

excel - Excel DNA - 我可以避免一起做 regasm 吗?

我正在尝试评估Excel DNA以在我的一个 excel 加载项中使用它。我使用 C# 函数 (.NET 4.0) 并希望从 Excel 调用这些函数。我感兴趣的原因是,我的插件的用户是非管理员,因此如果我能找到一个解决方案,不在我的 .NET dll 上进行 regasm,让我的插件正常工作,这将是一个突破。

我知道,如果它像一个工作表函数(具有简单的返回类型和参数),例如:private string Add (int a, double b) 我可以使用 excel dna 轻松包装公开它们。另外,我知道,我也可以使用VBA中的Application.Run调用这些简单的函数。

但是,如果我在 API 中有一个复杂类型并且想从 VBA 中使用它,那么我是否需要重新调整该程序集和类型?像这样的例子:

或者 Excel DNA 中是否有任何方法,我也可以在 VBA 中使用此类函数而无需任何 regasm 或 regsvr32 ?

谢谢玛尼