在部署时无需 Regsrv32 即可将 TLB 转换为托管 .NET 程序集

2023-11-29

我有一个作为第三方 API 的一部分提供的 TLB。我使用 TLBIMP.exe 生成 DLL 程序集包装器。然而,在开发时,该程序集似乎需要使用 regsvr32 注册才能使用。

然而,这在开发时不是问题;我在生产中使用托管实例,并且在部署时手动注册 DLL 即使不是不可能,也会很痛苦。有没有一种方法可以在部署期间不需要注册步骤来使用托管 DLL 程序集?

我一直在互联网上阅读,并找到了一些关于使用 app.manifest 免注册 COM 的文献。这可能是一个可行的解决方案吗?


如果类型库也嵌入了您的第 3 方 COM DLL,因为它应该是这样,隔离串口确实可以用于此目的(您可以使用 OleView 进行验证)。在 VS2010/2012 中以这种方式使用 COM DLL 非常容易。 DLL 必须在开发计算机上注册。然后您只需将其添加为对您的 .NET 项目的引用并打开其Embed Interop Types and Isolated特性:

enter image description here

互操作程序集将与使用的 .NET 程序集合并,您只需确保 COM DLL、.NET 程序集和生成的。显现文件在部署时被复制在一起。

考虑客户端应用程序的 COM 单元模型非常重要。使用 STA 客户端应该不会有任何问题。但对于 MTA 模型,默认的基于 typelib 的编组器可能不适用于由隔离 DLL 创建的 COM 对象(更多信息请参见here)。如果 DLL 附带了实现的 COM 代理/存根代码,那么这也应该不是问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在部署时无需 Regsrv32 即可将 TLB 转换为托管 .NET 程序集 的相关文章

  • 在 T4 代码生成中,如何从引用的程序集中获取类型?

    由于 T4 在项目上下文之外运行 因此我无权访问当前程序集或其他程序集 如何注册对引用程序集的访问 然后从中获取类型 我猜您想访问项目中建筑物的程序集 我在下面的示例代码中所做的是将一个名为 TestLib 的项目添加到我的解决方案中 我将
  • 在关键服务器上对字符串进行内存受限的外部排序,并合并和计算重复项(数十亿个文件名)

    我们的服务器生成如下文件 c521c143 2a23 42ef 89d1 557915e2323a sign xml在其日志文件夹中 第一部分是GUID 第二部分是名称模板 我想计算具有同名模板的文件的数量 例如 我们有 c521c143
  • 无法在 Visual Studio 和 vcpkg 中构建 cmake 项目(致命错误 C1083)

    我今天安装了vcpkg 启用了与Visual Studio的集成 即 vcpkg集成安装 并开始安装库 我基本上安装了 cpprestsdk 并触发了 boost 库的安装 然后我在 Visual Studio CMake 中打开该项目 当
  • Xcode 新手无法用 C++ 打开文件?

    我一直在我参加的课程中使用 Windows 但我正在尝试运行基本代码来弄清楚如何从 Xcode 上的文件打开 关闭 输入 输出 而我通常在 Visual Studio 上使用的代码不是不知道为什么 谢谢 include
  • Moq - 是否可以在不使用 It.IsAny 的情况下设置模拟

    我一直使用 Moq 进行单元测试 有时我会嘲笑有很多参数的方法 想象一下这样的方法 public class WorkClient public void DoSomething string itemName int itemCount
  • 是否可以在对Where 的调用中调用命名方法?

    我试图从 RedGate 的这本免费电子书中了解 Linq 的一些性能影响ftp support red gate com ebooks under the hood of net memory management part1 pdf f
  • VS C# 中的依赖地狱,找不到依赖项

    我创建了一个图表 C 库 我们称之为chartlibrary 它本身依赖于多个第三方 dll 文件 在另一个可执行项目中 我们称之为chartuser 我参考了chartlibrary项目 两个项目位于 Visual Studio 中的同一
  • C++ 更改屏幕方向问题 -- DEVMODE dmDisplayOrientation DMDO_90 undefined

    我似乎无法编译一些 C 代码 我正在翻转显示器的方向 但 VS2008 告诉我 DMDO 90 和 DMDO 270 无法识别 error C2065 DMDO 90 undeclared identifier error C2065 DM
  • 使用 C# 的异步 WebRequest

    您好 我有一个函数 它将 url Get 参数传递到网络服务器上的 php 文件 并等待文件的响应 通常需要 10 20 秒 我想将其放入一个循环中 因为我必须一次将这些 Get 请求发送到大约 5 个不同的 php 文件 但是当我尝试将其
  • C# 从今天起 30 天

    我需要我的应用程序从今天起 30 天后过期 我会将当前日期存储在应用程序配置中 如何检查应用程序是否已过期 我不介意用户是否将时钟调回来并且应用程序可以正常工作 用户太愚蠢而不会这样做 if appmode Trial string dat
  • 为什么将未使用的返回值转换为 void?

    int fn void whatever void fn 是否有任何理由将未使用的返回值强制转换为 void 或者我认为这完全是浪费时间 David s answer https stackoverflow com questions 68
  • 如何使用 MongoDB 实现 ASP.NET Core 3.1 Identity?

    是一个 API 用于简化后端和逻辑代码来管理用户 密码 个人资料数据 角色 声明 令牌 电子邮件确认等 对于 Visual Studio 来说 支撑脚手架 https learn microsoft com en us aspnet cor
  • 为什么在 C++ 类中的数据成员上使用像 m_ 这样的前缀?

    许多 C 代码使用语法约定来标记数据成员 常见的例子包括 m memberName对于公共成员 在所有使用公共成员的情况下 memberName对于私人会员或所有会员 其他人尝试强制使用this gt member每当使用数据成员时 根据我
  • 提升shared_from_this<>()

    有人可以用几句话概括一下如何提升shared from this lt gt 应该使用智能指针 特别是从使用绑定函数在 io service 中注册处理程序的角度来看 编辑 一些回复要求提供更多背景信息 基本上 我正在寻找 陷阱 即人们使用
  • 在 C++ 中什么时候首选传递指针而不是引用传递?

    我可以想象一种情况 其中输入参数可以为 NULL 以便首选传递指针而不是传递引用 有人可以添加更多案例吗 在传递的对象实际上将被修改的情况下 有些人更喜欢传递指针 当对象通过引用传递时 它们使用 pass by const referenc
  • 为什么 getch 不可移植?

    是什么使得 getch 本质上无法作为标准 C 函数包含在内 对于控制台界面来说 它是如此直观和优雅 如果没有它 要求输入单个字符总是会产生误导 因为用户可以输入多个键 更糟糕的是 您经常需要确保在读取控制台输入后清除标准输入 这甚至不是作
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • SQL Server CE 不兼容的数据库版本

    我有一个 SQL Server CE 4 0 数据库 sdf文件 当我尝试从我的应用程序 WPF 对数据库进行查询时 出现以下错误 数据库版本不兼容 如果这是兼容文件 请运行修复 其他情况请参考文档 数据库版本 4000000 请求的版本
  • VB.NET 是否优化字符串文字的串联?

    如同this https stackoverflow com questions 288794 does c optimize the concatenation of string literals问题 但对于 VB NET 来说 因为我
  • 使用 ImageResizer 获取图像尺寸的最佳方法

    我正在将现有的 MVC 4 网站从自制用户文件上传切换为在上传时使用 ImageResizer 调整文件大小 我在文档中看到我不应该使用 System Drawing 但我无法找出任何其他获取图像尺寸的方法 尺寸是来自原始图像还是调整大小的

随机推荐

  • 为什么在 C++/Java 和类似语言中以美元符号开头的变量名不好?

    为什么在 C Java 和 PHP 中的类似变量名中以美元符号开头是不好的 编辑 有什么风险吗 在Java中 使用 in 变量是合法的 但绝对是一个坏主意 如果这样做 则存在意外使用与编译器本身或某些代码生成器使用的名称冲突的名称的风险 结
  • Firebase 在大数据集上的性能

    我正在为一个项目测试 firebase 该项目可能有相当多的密钥 可能有数百万个 我已经测试过使用节点加载几万条记录 加载性能看起来不错 然而 如果我展开根节点 FORGE Web UI 会变得极其缓慢 并且会渲染每条记录 Firebase
  • 将属性注册为 DependencyProperty

    我有一个名为 ChartView 的用户控件 我有一个 ObservableCollection 类型的属性 我已经在 ChartView 中实现了 INotifyPropertyChanged ChartEntry 的代码是 public
  • 获取 popover 的 data-content 内 HTML 标签的元素

    我正在 Bootstrap3 的 popover 中工作 我在这里放置了如下 HTML 内容 a href class btn title Test Click Here a 我无法引用 data content 属性中存在的 html 元
  • boost binary_oarchive 对于不同的编译器的工作方式不同

    我需要在客户端和服务器之间传输数据 当我将服务器从 Windows msvc140 移动到 Debian gcc 64 位 时 我的字节流类出现了问题boost 他们的档案是不同的 include
  • 如何使用 iText 将图形绘制为 PDF?

    我正在尝试完成一个绘制图形并将其写入 PDF 的示例 但我不断收到 PDF 没有页面的错误 如果我在打开后使用 document add 添加一些简单的东西 它工作正常 我只是永远看不到图形 这是我的代码 Document document
  • 用contentResolver删除短信太慢

    我想删除手机上的所有短信 除了每次对话的最后 500 条短信 这是我的代码 但速度非常慢 删除一条短信大约需要 10 秒 我如何加速这段代码 ContentResolver cr getContentResolver Uri uriConv
  • 简单的 ImageView 颜色动画

    您好 我对 Android 比较陌生 如果可能的话 我希望获得一些关于在哪里搜索以解决我的问题的指南或建议 显然 我不具备发布图像的声誉 因此我会尽力解释它 假设我有一个空瓶子 一旦调用这个片段 活动 我想引入一个动画 它将逐渐垂直地 从下
  • 从列表中获取 min() 和 max() 的有效方法? [复制]

    这个问题在这里已经有答案了 我的问题来自发布到的答案如何在python 3中找到任意列表中缺失的数字 大多数解决方案建议使用类似的东西 a 10 12 13 8 get set of full numbers allNums set x f
  • HTML5 中样式元素的“scoped”属性当前状态如何?

    这里说明了http www w3 org TR html markup style html style 允许的父元素 任何可以包含元数据元素 div noscript 的元素 节 文章 旁白 that
  • 来自用户空间的 int 指令

    我的印象是 x86 上的 int 指令没有特权 所以 我认为我们应该能够从用户空间应用程序执行这条指令 但似乎并非如此 我正在尝试从 Windows 上的用户应用程序执行 int 我知道这样做可能不对 但我想找点乐子 但 Windows 正
  • 使用 java 进行 Flyway 迁移

    我学习了使用java进行flywaydb迁移 可以使用JDBC连接 还可以通过SpringTemplate进行spring支持 但是flyway不能与DAO一起使用 对于具有更多关系的表 实体 使用 DAO 而不是 sql 进行迁移要容易得
  • 如何使MySQL表的某一列不可见

    我正在 ID 列上运行查询 但我不希望它在我的框架 窗格中可见 我怎样才能实现这个目标 我应该再创建一个表吗 sql mysql 中有一个可以隐藏列的函数吗 我尝试用谷歌搜索 但还没有找到任何东西 这是代码 public void tabl
  • 带有延迟加载的自定义列表

    I have successfully implemented like this for lazy loading in custom list 我为此使用的代码在这里 黑莓中带有图像的自定义列表在链接的问题中 我定位了心形图标的 y 坐
  • 从 ggplot2 中删除顶部和右侧边框[重复]

    这个问题在这里已经有答案了 是否可以从 ggplot2 图表中删除顶部和右侧边框 即 我想保留 x 轴和 y 轴 但删除图形周围的其余黑框 M 看到这个线程 它专门处理这里的问题 http groups google com group g
  • plot.window(...) 中的 R 错误需要有限的“xlim”值

    我想绘制一个 data frame 我的问题是出现以下错误 Error in plot window need finite xlim values In addition Warning messages 1 In xy coords x
  • 在 chrome://settings 和类似的 url 上运行用户脚本

    为什么 tampermonkey 对以下网址不起作用chrome history or chrome settings 有什么方法可以在此页面上运行用户脚本吗 不幸的是 这是不可能的 因为chrome方案 chrome 不支持 match的
  • 即使执行 IF 语句的 Else 语句也是 TRUE

    我有一个问题Python标题中描述的语言 for slovo in slova if pygame mouse get pressed 0 and slovo rect collidepoint pygame mouse get pos f
  • XCode Bots API 配置编辑失败

    我想通过 XCode Bots API 更改机器人的方案名称 像这样的请求 curl XPATCH H Content Type application json H x xcsclientversion 8 https localhost
  • 在部署时无需 Regsrv32 即可将 TLB 转换为托管 .NET 程序集

    我有一个作为第三方 API 的一部分提供的 TLB 我使用 TLBIMP exe 生成 DLL 程序集包装器 然而 在开发时 该程序集似乎需要使用 regsvr32 注册才能使用 然而 这在开发时不是问题 我在生产中使用托管实例 并且在部署