首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与RegAsm.exe有问题

与RegAsm.exe有问题
EN

Stack Overflow用户
提问于 2018-08-07 09:49:42
回答 1查看 520关注 0票数 0

目前,我正在遵循这一程序:

  1. 创建一些C#类:
代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace TestAgain
{
    public class Test
    {
        void testIt() {
            MessageBox.Show("Yellow world");
        }
    }
}
  1. 签个字。
  2. 在AssemblyInfo.cs中,将[assembly: ComVisible(false)]设置为[assembly: ComVisible(true)]
  3. 建造这个项目。
  4. 跑步雷公
代码语言:javascript
复制
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" -tlb -codebase "C:\Users\sancarn\Desktop\tbd\TestAgain\TestAgain\bin\Debug\TestAgain.dll" -verbose

regasm的产出如下:

代码语言:javascript
复制
Microsoft .NET Framework Assembly Registration Utility version 4.7.3056.0
for Microsoft .NET Framework version 4.7.3056.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Types registered successfully
Type 'TestAgain.Test' exported.
Assembly exported to 'C:\Users\sancarn\Desktop\tbd\TestAgain\TestAgain\bin\Debug\TestAgain.tlb', and the type library was registered successfully

因此,类型TestAgain.Test被导出,类型库已经注册。太棒了!

所以我使用Excel测试它:

代码语言:javascript
复制
Sub testIt()
    Dim o As Object
    Set o = CreateObject("TestAgain.Test")
    Call o.testIt
End Sub

并得到错误Error 429: ActiveX component can't create object。它没有注册吗?

有人知道为什么这不管用吗?

注意:我已经成功地获得了一个Com可见的应用程序与接口but I've been looking for a cleaner method和一个用户告诉我,雷杰姆可以完成这项工作。

EN

回答 1

Stack Overflow用户

发布于 2018-08-07 12:20:29

我已经知道了,但我忘了这件事:

  • 只向COM公开公共方法。
代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace TestAgain
{
    public class Test
    {
        public void testIt() {
            MessageBox.Show("Yellow world");
        }
    }
}

这就像一种魅力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51723792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档