无法通过再充气注册界面

时间:2019-05-22 14:52:25

标签: c# com regasm

尝试使用regasm注册界面

我试图在AssemblyInfo.cs上切换ComVisible,不走运。 我尝试签名。 再加气总是回应

RegAsm:警告RA0000:未注册任何类型

我的项目是.net 4.5类库。

我的一个cs文件-Interface.cs看起来像这样:

using System;
using System.Runtime.InteropServices;

namespace ComTestInterface
{


    [ComImport]
    [System.Security.SuppressUnmanagedCodeSecurity]
    [Guid("647ED2ED-78DB-4168-B50E-DD4C506EAF53")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface ImageSourceFilter
    {
        void SetColor();
    }


}

2 个答案:

答案 0 :(得分:1)

问题解决了。 我在类所在的同一项目中注册了接口。与下一个代码 界面:

    [ComVisible(true)]
    [System.Security.SuppressUnmanagedCodeSecurity]
    [Guid("170BB172-4FD1-4eb5-B6F6-A834B344260F")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IImageSourceFilter
    {
        void SetColor();
    }

班级:

 [ComVisible(true)]
    [Guid("170BB172-4FD1-4eb5-B6F6-A834B344268F")]
    [ClassInterface(ClassInterfaceType.None)]
    public class ImageSourceFilter : BaseSourceFilter,IImageSourceFilter
    {
  public void SetColor()
        {...}
     }

还值得一提的是,该类需要继承此接口。 在参数设置的项目设置中完成了Post-Build事件的注册:

"$(TargetDir)install.bat" $(TargetName)

然后包含install.bat:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe %1.dll /nologo /codebase /tlb: %1.tlb

答案 1 :(得分:0)

删除ComImport属性并添加ComVisible属性:

[ComVisible(true)]
[System.Security.SuppressUnmanagedCodeSecurity]
[Guid("647ED2ED-78DB-4168-B50E-DD4C506EAF53")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ImageSourceFilter
{
    void SetColor();
}
相关问题