问题标签 [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 投票
2 回答
6077 浏览

visual-studio-2008 - regasm 和 tlb(为 COM 互操作注册 .NET 库)

我有一个带有一个公共类和几个私有类的 .NET 程序集。

我正在尝试为 COM 互操作注册它,以便我可以使用以下命令从 VBA 调用它:

regasm /tlb foo.dll /codebase

随后,当我在 Visual Studio 的“对象浏览器”中打开该.tlb文件时,我看到该库没有公开任何类型。

有什么想法吗?

我意识到这里没有太多具体信息,所以如果你让我知道什么对诊断有用,我会尽力提供。

0 投票
1 回答
2516 浏览

security - 将 regasm 用于位于 UNC 共享上的框架 4.0 程序集

我正在尝试使用 regasm 实用程序注册一个 .Net 4.0 编译的二进制文件。此 ComInterOp 程序集必须部署在网络共享上,并且尝试从共享中注册失败并出现错误“无法加载文件或程序集或依赖项之一”。(如果二进制文件在本地驱动器上,则注册有效)。可能是代码访问安全问题,有没有办法为框架 4.0 程序集设置它?我尝试过 4.0 框架附带的 Caspol.exe,但它没有帮助。

0 投票
1 回答
377 浏览

.net - COM 库的属性/方法描述

如果您创建一个 COMClass,我注意到当您引用生成的 tlb 文件时,XML 摘要标记中的值不会显示在 VB6/VBA 的对象浏览器中。有没有办法让这些值显示出来?

0 投票
3 回答
2839 浏览

.net - 从经典 ASP 页面使用 .NET 程序集

我有一个旧的 .net 2005 网站,它有一些 asp 页面,并且在访问 .net dll 时遇到对象引用问题。维护任务交给了我,原来的开发者无处可寻 :(我已经从 .Net 开始了,所以我并不真正掌握处理这种 dll 地狱之类的问题。

在下面的箭头上,我遇到了“(0x80131500)对象引用未设置为对象的实例”。

我已经按照以下步骤操作:

  1. regasm /tbl /codebase mycomdll.dll
  2. gacutil /i mycomdll.dll
  3. 将 mycomdll.dll 复制到 System32 目录
  4. 从控制台,执行 issreset
  5. 如果您的 dll 是在 framework 2.0 中创建的,则在 system32 目录中创建一个“dllhost.exe.config”文件并将其放入:

<?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v2.0.50727"/> <requiredRuntime version="v2.0.50727"/> </startup> </configuration>

6.- 使用 issreset 命令重启 IIS

还有这些:

  1. 在项目属性下 a. 在 \application\assembly 信息下 i。选中“使程序集 Com-Visible”。湾。在构建 i。勾选“注册 Com Interop”</li>
  2. 不要签名。
  3. 确保 IUSR 对该文件具有完全权限。
  4. 通过 iisreset 重新启动 IIS 以刷新所有缓存。

并且仍然没有成功运行该应用程序。还有更多想法要检查或做什么吗?谢谢!

埃米尔

0 投票
0 回答
130 浏览

.net - 需要在 Windows 更新后将 .Net 程序集移动到程序文件

我有一个遗留的 Windows 客户端应用程序,它使用了几个 .Net 程序集(我创建的),一个带有 COM 包装器。客户端应用程序驻留在根驱动器子文件夹 (c:\somefolder...) 中。最近在 Windows 更新后,应用程序无法正确加载 .Net 程序集。在更新之前没有任何问题。

我通过将程序集移动到程序文件下的子文件夹并重新注册(regasm)COM 程序集,然后从根驱动器下的现有位置删除文件来解决了这个问题。虽然这现在有效,但它不是一个长期的解决方案。

我在不同的 Windows 更新后看到了这个问题,所以我无法将它固定在特定的更新上。该问题主要出现在 XP 机器上,但在 Vista 和 7 上也出现过。关于可能发生的情况有什么想法吗?谢谢。

0 投票
1 回答
6620 浏览

.net - 注销旧版本的 .net 程序集

我有一个包含很多旧注册版本的程序集。

我唯一的dll是最后一个。

如何注销所有版本的程序集?

谢谢。

编辑:我想在运行时执行此操作,所以我想要类似 regasm -u... 或其他一些脚本解决方案。

0 投票
2 回答
1024 浏览

wix - Wix - 如何自动调用 DLL 文件上的 Heat 以接收 regasm 信息

为了在安装期间模拟“regasm file.dll /codebase”执行,我们在要添加到注册表的 file.dll 上运行 Heat.exe。然后我们将生成的内容添加到我们的 installer.wxs 文件中,一切正常。

我们想自动化这个过程,这样我们就不必在每次 .dll 文件更改时手动运行 Heat.exe。相反,每次我们构建 Wix 项目时都会执行该调用。

我们该怎么做?一个代码示例将不胜感激。

谢谢,马克西姆

0 投票
1 回答
1162 浏览

c# - 使用 WiX 在 GAC 中注册 COM dll

大家好,

我正在为我的程序编写一个 WiX 安装脚本。我需要将 C# dll 安装到 GAC,然后注册它。Assembly=".net"所以,我用WiX GAC 为我标记文件,然后我有一个延迟的自定义操作,设置为 run before InstallFinalize,它调用Assembly.Load从 GAC 加载程序集,然后RegistrationServices.RegisterAssembly注册它。

应该是完美的,除了一个问题:显然 dll 直到提交阶段才真正写入 GAC,所以当我的自定义操作运行时,Assembly.Load因为找不到文件而抛出。它在哪里?在提交阶段之前是否可以访问?还是有更好的方法来完全做到这一点?好像是一件很琐碎的事情...

请不要建议使用heat.exe;我真的很想避免它。如果可能的话,我的程序有一个ComRegisterFunction想在用户计算机上执行的程序。

0 投票
1 回答
1064 浏览

c# - 在仅 .NET-4 的系统上的 GAC 中使用以 .NET-2.0 为目标的 COM DLL

再次问候,

继我之前的问题之后,我试图最大限度地提高我用 C# 编写的 Windows Explorer 扩展的兼容性。特别是,我有兴趣确保它在安装了 .NET 4且未安装 .NET 3.5 及更低版本的环境中工作。有人会认为没有问题,但显然不是那么简单......

有两个问题。首先,非 .NET-4 目标程序集将不会使用 CLR 4 加载,除非它们有一个.config指定<supportedRuntime version="v4.0" />. 如果没有这个文件,即使尝试使用ngen它们也会失败。.config但我的 DLL 进入 GAC。我如何也可以.config在其中获取文件?其他人也问过同样的问题,并得出结论“好吧,我将改为创建一个静态设置类。” 显然我不能这样做...

第二个问题:当我用 注册我的 DLL regasm.exe,然后打开注册表查看它写的内容时,我RuntimeVersion = v2.0.50727在它的 CLSID 条目下看到。这也可以防止加载 DLL。只有在我手动将RuntimeVersion值更改v4.0.30319为 DLL 加载后。

那么我必须让我的安装程序在这里做什么呢?对于第一个我不知道。第二,我想我必须让安装程序手动将注册表的 RuntimeVersion 设置为安装的任何 .NET 版本?这似乎太古怪了,不可能是真的……

0 投票
2 回答
958 浏览

.net - 可以安装吗。NET COM 库位于网络共享文件夹中?

使用位于网络文件夹中的 reg asm 注册的 COM 服务器无法正常工作。当您尝试创建对象时,会收到错误“自动化错误”。如果 dll 位于本地磁盘上,则一切正常。

附加信息:

  • .Net 3.5编写的COM库

  • 通过 VB 宏访问 COM

  • 图书馆有一个强大的名字