问题标签 [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.
.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吗
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
会给我类似的信息。所以我有点难过。任何人都知道我应该如何从这里开始?
.net - Regasm - 无法定位输入组件
我编写了一个 .NET 程序集并使用 Regasm 在我的本地计算机上成功注册了它,但是当我尝试在目标服务器中执行此操作时,我收到以下错误。
Regasm :error RA0000 : 无法找到输入程序集“完整 dll 路径”或其依赖项之一。
我的本地机器是 Windows XP 32 位机器,而服务器是 32 位 Windows 2003 Server。
我正在使用以下命令进行 regasm: Regasm "full file path" /tlb:filename.tlb
有谁知道我在这里想念什么?
谢谢。
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
,但这显然不存在。
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。
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 文件夹,什么都没有。
我的安装可能有什么问题???
请对此有所了解。
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 处理的引用。
感谢您的任何想法!
.net - 如何使用 Regasm.exe 完全注销 AssemblyFile
我尝试了以下命令来注销 AssemblyFile:
但是,它仍然留下这样的注册表项:
那么,有没有办法自动删除左侧条目?谢谢
.net - 如何在我的程序安装程序中找到 regasm.exe?
我的程序使用 regasm.exe .net 类注册。在我的计算机上regasm.exe位于C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319文件夹,但在另一台计算机上它可能位于 ...\v4.0.1234 甚至 ...\v4.2.1234。
我怎么知道它在哪里,所以我可以为我的程序创建一个安装程序?
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 ?
谢谢玛尼