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

c# - 如何在其他机器上为 COM 互操作注册 DLL?

我在 C# 中创建了一个带有 2 个引用库的 ActiveX 库,并将其注册为 COM 互操作,并使用 Visual Studio 的强名称密钥对其进行签名。它工作正常,但现在我想在另一台计算机上注册它。我使用 regasm 和 /codebase 来注册 DLL,但是当我尝试实例化 ActiveX 对象时,调试器会抛出错误:自动化服务器无法创建对象。我已经将 Internet Explorer 配置为允许初始化未标记为可安全执行脚本的控件,但它没有帮助。

0 投票
1 回答
1572 浏览

c# - 注册一个引用多个dll的dll

好的,我有 2 个问题,我在这里很忙,已经有一个星期了。

重要- 没有应用程序会构建或运行它。它将是单个客户端 dll(引用其他几个 dll),将放置在特定文件夹中,我需要使用 regasm 或其他方式注册此 dll。

概述:

所以我写了ac# COM ScannerController.dll。ScannerController 引用了五个 3rd 方 dll,这些 dll 已经安装并注册在 c:\Program Features\etc...的文件夹中。(位置将根据它们所在的软件版本而变化,但 dll 将是相同的。)

这个 dll(integration.ActiveX(它是一个程序集))有一个名为 InstalledPath 的方法。InstalledPath 返回执行程序集的实际位置。当我完成 dll 时,我通过 IExplorer 运行它,它返回了正确的“../program features/....”。

然后,为了在另一台计算机上设置它,我取消了注册,然后运行了一些 regasms 并在“Scanner/bin/debug/integration.ActiveX”注册了 dll(其中 oleview 说它找不到它的依赖项)所以我取消注册它是在 vs2012 中构建的,现在当我从 IExplorer 运行它时,InstalledPath 是“../bin/debug/”。我创建了一个新项目,构建了它并自动注册它,然后从 iexplorer 运行它,InstalledPath 是“..Scanner-fake/bin/debug/”。我已经在 cmd 中注销了它一百万次,无论我做什么,它现在总是指向已注册的 ScannerController 的调试文件夹。

问题一:

我到底如何使用 regasm 之类的东西注册我的 COM ScannerController.dll,并将其指向 ScannerController 引用的五个第 3 方 dll?

问题2:

我尝试将其修复到我计算机上本地路径中不存在 Integration.dll 的位置(因为我正在构建它)所以我将本地副本设置为 false。当我构建它时,在 oleview 中查看它,它说无法加载或找到它的依赖项。如何设置项目,以便在复制 local = false 的情况下,引用可以找到其他 3rd 方 dll?

很抱歉这个冗长的问题,但非常感谢您阅读并尝试帮助我。我为此寻找了高低,我现在只是精神疲惫。

0 投票
1 回答
399 浏览

c# - 使用 RegAsm 后覆盖 DLL

我创建了一个要从 Excel VBA 使用的 C# DLL。我在我的开发机器上编译了 DLL,并将 DLL 和 TLB 文件移到了开发服务器上。

我使用 RegAsm 注册 DLL,效果很好。然后我打开 VBA 并添加了对 .TLB 文件的引用。然后我在 VBA 中使用了这个类,一切都很好。

我现在对 c# 类库进行了更改,编译了库,但是当我尝试覆盖开发服务器上的文件时,它们被锁定为被另一个进程使用。

我尝试使用 RegAsm /unregister,但这仍然没有帮助。

提前致谢。

0 投票
3 回答
2632 浏览

c# - 无法在 Windows 7 中使用 RegAsm 注册 .dll

我正在尝试将 QuickTime 2.0 ActiveX 插件用于用 C# 编写的 winforms 应用程序。

首先,我将对象从我的工具箱拖到表单中,但我收到一条错误消息,提示无法导入 ActiveX 控件并检查它是否已正确注册。在解决方案资源管理器的引用标题下,AxQTOControlLib 引用显示为失败。

为了尝试解决这个问题(在搜索解决方案之后),我使用 AxImp 从 QuickTime 程序文件中的 QTOControl.dll 为控件创建相关的 C# 包装器。

然后我尝试使用 RegAsm 向系统注册 .dll,但是当我这样做时,我收到以下错误:

“RegAsm:错误 RA0000:无法加载文件或程序集‘QTOControlLib,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null’或其依赖项之一。系统找不到指定的文件。”

我检查了,文件确实存在,路径是正确的。

请您帮忙解决这个问题,以便注册.dll 并在winforms 应用程序中使用QuickTime ActiveX 控制器。

我正在使用以下设置:

Windows 7(64 位)Visual Studios 2010 .Net 4.0

0 投票
1 回答
3401 浏览

.net - 使 .NET DLL 对 COM 可见的最简单方法?

我有一个专有的.NETDLL,我想在COM客户端中使用它。

目前,当我使用regasm它时说:warning RA0000 : No types were registered

由于我没有源代码,因此无法将类设置为ComVisible或其他任何需要。

我怎样才能轻松地使这个 DLL 对 DLL 可见COM

0 投票
0 回答
3196 浏览

windows-7 - COM 注册失败,因为需要管理员权限

注册 COM 组件时出现错误。从命令行我收到以下错误

RegAsm : error RA0000 : 将注册信息写入注册表时出错。需要管理员权限才能使用选定的选项。使用管理员命令提示符来完成这些任务。

从 Visual Studio 注册,我收到错误

错误 MSB3216:无法注册程序集“xxxxxxx.dll” - 访问被拒绝。试图执行未经授权的操作。

我正在使用安装了所有更新的 Windows 7 64 位,并且我禁用了 UAC。似乎是什么问题?

0 投票
1 回答
1386 浏览

c# - 64 位类型库和 32 位类型库不同步

这个问题让我头疼了好几天,一直找不到原因。我很确定这是我的机器特有的环境问题,但它仍然给我带来了测试问题。

我正在使用 Visual Studio 2010 Professional 在 C# 中创建一个 DLL。第一版如下;

这个程序集编译得很好,一切都很好。我运行以下脚本将其注册为 COM 对象(首先是 32 位,然后是 64 位);

然后使用以下脚本对其进行测试;

我使用 csript 来测试脚本,所以我可以控制它使用的位深度——我用 32 位测试一次,用 64 位测试一次。到目前为止一切都很好。

现在,当我修改原始程序集添加一个功能时,如下

在修改之前,我使用“regasm /unregister”注销了库,它报告了所有类型的注销成功。

当我注册库时,现在进行了更改,原始测试脚本可以完美运行。如果我扩展测试脚本来调用新的 HelloWorld 函数;

在 32 位脚本中,它可以完美运行。在 64 位脚本中,它抱怨 TestCOM.Class1 对象不存在这样的函数

我已经尽我所能尝试了这个,但我无法确定为什么新函数对 32 位调用者可用,但对 64 位调用不可用。

我究竟做错了什么 ?我不知道的 64 位内容是否有缓存,或者需要更改的注册表设置?

要清楚;1. 构建程序集 2. 使用 regasm 注册,一次用于 32,一次用于 64 3. 使用脚本测试 - 一切正常 4. 取消注册库 5. 进行修改,重建 6. 按照步骤 2 注册 7. 测试工作在 32 位, 但不是 64. wtf ?

0 投票
0 回答
263 浏览

c# - unable to register custom Dll using regasm

I have a custom dll which used to register in winXP , now i want to use the same in win7 but i am not able to register with regasm .

I get an error saying one of the dependencies is missing .

Although i have added that expilcitly and it is also added automatically with test agent 2010 ,

i tried registering the above assembly manually , but that also was unsuccessfull.Error for this was "No types registered".

Can someone please advise.

0 投票
1 回答
527 浏览

wix - 无法使用 WIX 安装程序注册 dll

我有我的上下文菜单外壳扩展 dll。我已经使用 Heat.exe 为我的 dll 创建组件,并且在安装时它工作得很好。但我无法使用 wix 安装程序注册我的 dll。我尝试了各种选择,但没有任何效果。

如果我尝试使用 regasm.exe /codebase Myfile.dll 进行手动注册,它可以工作。

0 投票
1 回答
263 浏览

dll - 如何从 shell 扩展加载 DLL?

我写了一个小的 shell 扩展,存根可以工作,但希望它从 SQLite 数据库中读取一些信息。

SQLite 需要 2 个 DLL

  • System.Data.SQLite.dll:仅托管的核心程序集
  • SQLite.Interop.dll: 本机互操作程序集

过去,我已经使用这两个 DLL 成功构建了桌面应用程序,方法是将它们放在与文件相同的文件夹中.exe
但是在shell扩展的情况下,没有.exe文件这样的东西,那么我应该把这些DLL放在哪里呢?

注意:现在我使用Regasm部署 shell 扩展,但我计划将来使用WiX部署它们。