使用 Visual Studio 安装项目自动注册和 GAC COM Interop DLL

2023-12-31

我已经为 COM 互操作创建了一个 .NET 程序集,它在我的开发计算机上运行良好。我目前正在尝试弄清楚如何使用 Visual Studio 的“安装项目”将 DLL 部署到目标计算机。如何使用 VIsual Studio 安装项目执行以下操作:

  • Register the assembly (currently using regasm).
    • 程序集需要成功注册,类型库(.tlb)需要成功注册
    • 这个答案 https://stackoverflow.com/questions/239465/how-to-register-a-net-ccw-with-regasm-from-a-visual-studio-2008-setup-project/1883517#1883517建议报废regasm支持自定义代码。我这是个好主意吗?如果是这样,该代码如何包含在安装项目中?
    • 这个答案 https://stackoverflow.com/questions/12807/how-to-register-com-from-vs-setup-project/14604#14604建议使用/regfile的命令regasm然后使用安装项目中注册表上的导入工具。这行得通吗?
  • Install the assembly in the GAC (currently using gacutil)
    • 我知道“目标计算机上的文件系统”中的“全局程序集缓存文件夹”。将程序集包含在设置项目中需要做什么特别的事情吗?

任何其他建议或疑虑将不胜感激。


Gacutil.exe 在目标计算机上不可用。没问题,MSI 可以完成这项工作。右键单击“目标计算机上的文件系统”,添加,GAC。右键单击添加的文件夹,“添加”,“项目输出”。这确保了程序集是经过 gac 处理的。

它还可以像 Regasm.exe 一样注册程序集。将项目输出引用的 Register 属性设置为 vsdrpCOM。

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

使用 Visual Studio 安装项目自动注册和 GAC COM Interop DLL 的相关文章

  • 实用程序库中应包含哪些内容[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着我的项目越来越多 我发现我经常从一个项目到另一个项目 从一个客户到另一个客户重复许多常见的任务 因此 我开始组装一个 实用程序 库 这是这些
  • EasyNetQ 模型关闭

    我使用 EasyNetQ 实现了一个简单的 RabbitMQ 客户端 连接后 我收到一条通知 队列模型关闭 这是我的代码 var bus RabbitHutch CreateBus String Format host 0 hostName
  • 解决找不到程序集的问题 |文件未找到异常 |融合日志

    我正在尝试将我的解决方案包 wsp 部署到 SharePoint 2007 环境 WSP 包含一个功能 该功能加载功能接收器类以在运行时部署计时器作业 在部署此 WSP 时 我不断得到 特征 fb631f6c 2c46 4ab5 b7b3
  • 找不到 Microsoft.Office.Interop Visual Studio

    我正在开发一个使用 C 发送电子邮件的应用程序 该应用程序将能够使用邮件模板等 问题是我无法找到任何 Office Interop 引用 这意味着我无法使用 Outlook 我的计算机上安装了 Office 但我也尝试从此链接安装 PIAh
  • 如何获取Winforms窗体标题栏高度的大小?

    因此 如果它是工具窗口或可最小化的表单 我希望能够以编程方式获取其高度 这可能吗 如果是这样怎么办 您可以使用以下方法确定工具窗口和普通表单的标题栏高度 Rectangle screenRectangle this RectangleToS
  • 在 C# 中使用通配符解析相对路径

    在 C 中 如果我有一个目录路径和一个带通配符的相对文件路径 例如 c foo bar and blah cpp 有没有一种简单的方法来获取绝对文件路径列表 例如 c foo blah a cpp c foo blah b cpp 背景 有
  • CompileAssemblyFromDom 抛出访问被拒绝异常

    代码 using var codeProvider new CSharpCodeProvider var compilerParameter new CompilerParameters assemblies assemblyName fa
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 为什么当要求修剪“PRN.NUL”时,TrimStart 会更多地修剪字符?

    这是代码 namespace TrimTest class Program static void Main string args string ToTrim PRN NUL Console WriteLine ToTrim string
  • .NET“默认行终止符”?

    有什么方法可以弄清楚 NET 使用什么作为其 默认行终止符 例如 StringBuilder AppendLine String 的文档表示 附加指定字符串的副本 后跟默认行终止符 NET 中的几个与文本相关的类引用相同的概念 有什么方法可
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 当操作系统显示语言为非英语时获取本地时区标识符

    奇怪的是 TimeZone CurrentTimeZone StandardName根据计算机显示语言返回本地化名称 我想要一个可以提供给的程序化标识符TimeZoneInfo在下面的代码中 TimeZoneInfo timeZoneInf
  • Winforms 中的 WPF ElementHost 最大化时崩溃 (Windows)

    我正在尝试将新的 WPF 控件集成到现有的 WinForms 应用程序中 并使用 ElementHost Dock Fill 来托管以下 XAML UserControl NET 4 当我将 WinForm 设置为最大化时 我的整个操作系统
  • 为什么 C# 不支持类构造函数中的隐式泛型类型?

    如果编译器可以推断出泛型类型参数 C 并不要求您指定它 例如 List
  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags

随机推荐

  • 如何在 Vim 中设置工作/当前目录?

    因此 当我想使用 e 命令创建新文件时 我不想指定整个路径 而只想指定新文件名 能做到吗 正如已经建议的 您可以使用 autochdir 它将更改为您打开的文件的目录 另一个选项是 cd mydirectory 这将更改目录 这可以是绝对路
  • ruby - 覆盖方法然后恢复

    我正在尝试找到一种方法 可以覆盖方法 执行某些操作 然后在不留下任何工件的情况下进行恢复 我已经使用 mocha 实现了这个 但显然这不会在生产应用程序中运行 请注意 新方法有参数 而旧方法没有 示例如下 require rubygems
  • CSS 宽度和高度属性的最大像素值是多少?

    最大有效值是多少pxCSS 的值width and height属性接受吗 我目前正在构建一个网络应用程序 它创建一个非常大的可缩放容器元素 我想知道实际的限制是什么 在元素上使用某些浏览器附带的 CSS 检查器10000000000px
  • 从 javascript 运行 bat 文件

    我正在尝试使用 javascript 运行 bat 文件 我尝试过使用 powershell 但它似乎无法正常工作 这是我尝试过的代码 var oShell WScript CreateObject WScript Shell oShell
  • 将浮动栏添加到滚动视图,就像 Facebook iOS 应用程序的时间线中一样

    我一直在尝试向我的测试项目添加不同的交互 但在添加 Facebook 的帖子状态栏之类的东西时遇到了麻烦 该状态栏位于时间线滚动视图上 并在向下滚动时随滚动视图一起滚动视图 但当您向上滚动时仍停留在导航栏下方 我一直在创建一个单独的 UIV
  • 如何在 docker 上运行电子应用程序

    我创建了一个托管电子应用程序的存储库的分支 该应用程序是一个聊天客户端 https github com Serkan devel BetterDiscordApp docker https github com Serkan devel
  • 是否可以克隆 ValueType?

    当已知对象是装箱 ValueType 时 是否可以克隆对象 而无需编写特定于类型的克隆代码 一些代码供参考 List
  • 如何从 statsmodels 中检索模型估计值?

    从这样的数据集 import pandas as pd import numpy as np import statsmodels api as sm A dataframe with two variables np random see
  • 如何使我的代码诊断语法节点操作对关闭的文件起作用?

    我正在使用 Roslyn 在 VS2015 预览版中 构建一组代码诊断 理想情况下 我希望它们产生的任何错误都充当持久错误 就像我违反了正常的语言规则一样 有很多选择 但我很难让其中任何一个都能持续工作 我已经成功实现了一个基本的语法节点操
  • WP7 XNA游戏:如何适应不同手机分辨率?

    我创建了一款针对 800 x 480 分辨率的游戏 但对其适应其他 WP7 分辨率很感兴趣 另外 我听说游戏可以通过 Mono 和 ExEn 移植到 iPhone 和 Android 从而开放大量其他屏幕分辨率 处理这个问题的正确方法是什么
  • Linux - 在 Nouveau 驱动程序上运行 Android 模拟器

    Linux Debian Sid x64 内核 4 14 Nvidia GPU 我无法在开放的 Nouveau 驱动程序上运行 Android 模拟器 我没有可以发布任何错误消息 只是分段错误 当我选择软件渲染时 它可以工作但无法使用 运行
  • 返回接口的函数

    为什么我可以说 CreateLion 的结果 指向实现 Cat 接口的结构的指针 是 Cat 接口的实例 但我不能说 CreateLion 是 返回 Cat 的函数 类型界面 实现此类行为的标准 Golang 方法是什么 package m
  • 如何向 JAXB 中的文本元素添加属性?

    如何使用 JAXB 生成以下 XML 片段
  • Codeigniter 图片和源 URL

    我的 Codeigniter URL 有问题 我有一个控制器 welcome php
  • 如何从数组末尾删除第 n 个元素

    我知道您可以使用 array pop 删除数组中的最后一个元素 但如果我想删除最后 2 或 3 个 我该怎么办 那么如何删除该数组中的最后 2 个元素呢 Use 数组拼接 http www php net array splice并指定要删
  • 测试给定数组是否是子数组

    这是 Numpy 初学者提出的一个基本问题 我有一个 5 行 2 列的 2D 数组 您可以将其视为 10 个 2d 向量 我想测试给定的向量是否在表内 例如 gt gt gt tableau array range 10 dtype uin
  • 自定义 Google Maps API v3 中的默认 InfoWindow

    我想知道是否可以自定义当用户单击 Google 在其默认地图上显示的各种企业时弹出的默认信息窗口 请参阅 screenie 我想添加功能 让人们在浏览地图时偶然发现这些位置时 固定 这些位置 目前无法监听 POI 图标上的任何点击事件 因此
  • 在泛型中实现算术?

    是否可以像您一样在 C 泛型中实现基本算术 至少是加法 使用 C 模板 http nonchalantlytyped net blog 2010 04 24 church numerals in c 我已经尝试了一段时间让它们启动并工作 但
  • 类型错误:预期的字节字符串值序列,找到 str 类型的值

    我正在尝试使用运行一个简单的 hello world 应用程序mod wsgi对于 Python 3 我使用的是 Fedora 23 这是我的 Apache 虚拟主机配置
  • 使用 Visual Studio 安装项目自动注册和 GAC COM Interop DLL

    我已经为 COM 互操作创建了一个 NET 程序集 它在我的开发计算机上运行良好 我目前正在尝试弄清楚如何使用 Visual Studio 的 安装项目 将 DLL 部署到目标计算机 如何使用 VIsual Studio 安装项目执行以下操