繁体   English   中英

使 C# Class 库 COM 在 Visual Studio 2022 中可见

[英]Making C# Class Library COM-Visible in Visual Studio 2022

我的最终目标是在 C# 中构建一个 class 库 (Calculator.dll),其中包含可通过 VBA 访问 Excel 的函数。

我曾希望避免需要注册 dll,而是在 VBA 代码中使用 Declare Function 语句,但显然这是不可能的,我的研究指出我需要使 class 库 COM 可见,然后注册它,并将其添加为对 VBA 项目的引用。 在早期的 Visual Studio 版本中,这似乎是单击项目属性对话框中的框的问题,但我在 VS2022 中看不到该框?!

这些是我对“玩具”示例采取的步骤,以及我遇到的问题。

(1) 我用 class 计算和一个将两个整数相加的简单方法构建了以下 .dll。 由于我们使用的是32位的Excel,所以我配置为x86。

namespace ClassLibraryCalculator
{
    public class Calculate
    {
        public int Add(int a,int b){ return a + b; }
    }
} 

(2) 在命令提示符下,以管理员身份运行,我尝试运行 regsvr32“ClassLibraryCalculator.dll”但遇到错误“..已加载但未找到入口点 DllRegisterServer”

从周围搜索,据说对此的补救措施是修改项目属性,这是(在早期版本的 VS 中?)一个对话框在此处输入图像描述

带有复选框,但我在 Visual Studio 2022 项目属性中看不到任何与 COM 相关的内容。

首先确保创建一个类型为“类库(.NET Framework)”的项目,该项目使用经典的 Windows .net 框架,如 4.8 版。 不要选择基于 .NET 标准并支持多种不同操作系统的“类库”项目类型。

在此处输入图像描述

创建项目后,通过在解决方案资源管理器中右键单击项目并选择“属性”来打开项目属性。

在项目属性中,go到“Application”,然后点击“Assembly Information”。

在此处输入图像描述

在“Assenmbly Information”对话框中,启用“Make assembly COM-Visible”复选框。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM