问题标签 [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 - .net regasm 问题
假设我们有这种情况下部署一个.net com dll 并在其上运行 regasm 的设置,此设置没有卸载,因此 unregister 永远不会被调用..您可以一遍又一遍地运行设置..
这样做有什么危险吗??如果我使用新版本的 dll 部署新设置会发生什么。
从不运行卸载有什么危险吗?
.net - 如何在没有 RegAsm.exe 的情况下注册类型库
我想知道是否可以在不使用RegAsm 工具的情况下注册类型库。这是我的情况,希望能解释我为什么要这样做:
我正在.NET 中开发一个程序集,它将为我们较旧的 VB6 应用程序提供一些现代功能。我已经使用 RegAsm 在我的开发机器上成功注册了程序集和类型库,如下所示:
上面的命令生成类型库 (MyAssembly.tlb) 并注册它以及注册程序集。我需要注册类型库,以便我可以在 VB6 中使用 Intellisense。
我对这种方法的问题 是,在生成类型库文件时我没有与TlbExp.exe相同的控制级别。特别是,我需要使用 TlbExp 的 /names 标志来指定我的属性名称的正确大小写(RegAsm 屠宰它们)。所以如果我使用 TlbExp 来生成我的 tlb 文件,有没有什么方法可以将它与程序集注册过程分开注册?
编辑: da_m_n 的回答对于我提出的问题是正确的。但是,我错误地假设,仅仅因为 RegAsm 可以注册一个类型库,就必须注册 tlb 以便在 VB6 中引用它。所以现在我正在注册程序集并使用固定名称引用未注册的 TlbExp 生成的 tlb。
c# - 启用 COM 的 .NET 用户控制
我创建了一个启用 COM 的 .NET 用户控件,我想知道将它部署给用户以在网页中使用该控件的最佳方法是什么?
cab 可以解决这个问题吗?我了解我需要重新调整用户机器上的控制。常规的 msi 会更好更容易使用吗?
谢谢
.net - .NET:regasm 和 caspol 取决于登录的用户
使用regasm
andcaspol
注册和授予程序集信任时,这些实用程序在哪个用户帐户下执行是否重要?
是否会出现只为机器或域上的某些用户注册和/或授予信任的情况?
gac - COM 程序如何定位为 COM 互操作注册的 .NET DLL?
一位客户想要使用我们来自 VB6 的 .NET DLL。它们旨在支持反向互操作,并且一切正常……除了:两个不同的目录中有两个独立的 VB6 程序。似乎有必要执行以下操作之一:
- 将 .NET DLL 复制到两个目录中,或者
- 在 GAC 中安装 .NET DLL
这是客户的观察,也得到了RegAsm 文档的支持:
使用 Regasm.exe 注册程序集后,您可以将其安装在全局程序集缓存中,以便可以从任何 COM 客户端激活它。如果程序集仅由单个应用程序激活,您可以将它放在该应用程序的目录中。
在这一点上我很困惑。
第一点混淆:
据我了解,COM 运行时使用 Prog ID / Class ID 定位 DLL。当我在注册表中查看 Class ID 条目时,我在 CodeBase 键中看到了 .NET DLL 的完整路径。为什么使用 Prog ID / Class ID 的 COM 程序无法使用 CodeBase 找到 .NET DLL?
困惑之二:
GAC 特定于 .NET。它如何参与解析 COM 引用?
c# - 必须注册 .tlb 文件?
我有一个 com interop c++ dll,它通过 c# 中生成的 .tlb 文件在 c++ 中加载。当我在我的计算机上运行时,它工作正常,但是当我在刚刚格式化的计算机上运行时,它会给出:
我是否必须为 .tlb 文件或其 dll 在系统中注册做一些事情?关于 regasm.exe 的东西?
如果是这样,是否可以只下载regasm.exe并使用它?
vb6 - 用于 VB6 应用程序中的类库的 RegAsm
简而言之,我构建了一个 C# 类库,它既是 COM 可见的,又是为 COM 互操作而注册的。我已经编译了库,从而生成了 .dll 和 .tlb 文件。
我有另一台运行 VB6 应用程序的机器。因此,我将 .dll 和 .tlb 文件复制到机器上的 C:/Windows/system32 文件夹中。然后我使用以下方法注册了这些文件:
成功注册文件后,我从我的 VB6 应用程序中添加了对 Test.tlb 文件的项目引用,然后我尝试在我的新引用类中调用一个方法,如下所示:
它不起作用,我收到 -2147024894 自动化错误。
我读过我不应该将 dll 安装到像 system32 这样的私有文件夹中。我应该在 GAC 中注册,或者我应该使用“/codebase”选项在另一个位置注册:
有什么理由我不应该使用 system32?过去从事此项目的开发人员已将此 VB6 项目使用的程序集文件放入 system32 中,似乎没有任何问题。
当我在 system32 位置注册我的 dll 时,我得到了自动化错误。当我在另一个位置(即 C:/)注册我的 dll 时,从 VB6 到我的类库的方法调用按预期工作。是什么赋予了?
我应该提一下,我们不会使用 GAC 来注册任何 DLL。就是那样子。
任何帮助表示赞赏。
麦克风
com - Regasm writes mscoree.dll into Registry key InprocServer32
When I register my .NET Assembly with regasm.exe the registry key
HKEY_CLASSES_ROOT\CLSID{111E32AD-4BF8-495F-AB4D-6C61BD463EA4}\InprocServer32
is set to "mscoree.dll".
However, I am trying to mimic an existing COM-Server that was written in C. When registering this old COM-server the InprocServer32 is set to the full path to this component.
Unfortunately the existing system (a plugin host that I can not change) reads and use this value - an is confused by the "mscoree.dll" value.
My solution might be to patch this registry entry manually - but I would like to understand why regasm writes "mscoree.dll" into InprocServer32 .
.net - 为什么需要在 .net 组件上多次运行 regasm 和 caspol?
为什么你需要多次regasm
运行caspol
一个组件?.NET
我有一个 COM 客户端,它使用.NET
驻留在另一台机器上的组件。因此我需要在这个组件regasm
上运行。什么可能导致需要在同一台机器上对同一组件再次执行此操作?caspol
.NET
regasm
的影响caspol
只是暂时的吗?或者如果我必须再次执行此操作,我是否可以假设有人已重置或清除机器上的某些内容?
编辑:只需要运行 capsol。
.net - 使用 Visual Studio 安装项目自动注册和 GAC 一个 COM 互操作 DLL
我为 COM 互操作创建了一个 .NET 程序集,它在我的开发机器上运行良好。我目前正试图弄清楚如何使用 Visual Studio 的“安装项目”将 DLL 部署到目标机器。如何使用 VIsual Studio 设置项目来执行以下操作:
- 注册程序集(当前使用
regasm
)。 - 在 GAC 中安装程序集(当前使用
gacutil
)- 我知道“目标机器上的文件系统”中的“全局程序集缓存文件夹”。在安装项目中包含程序集时我需要做些什么特别的事情吗?
任何其他建议或疑虑将不胜感激。