尝试使用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();
}
}
答案 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();
}