无法嵌入互操作类型



我有一个来自外部供应商的dll;它包含2个类:

namespace RDTiffDataAccess
{
    public class RDTiffDataClass : IRDTiffData, RDTiffData
    {
        public RDTiffDataClass();
    }
}

namespace RDTiffDataAccess
{
    public interface IRDTiffData
    {
        // some code
    }
}

我尝试调用构造函数:

RDTiffDataAccess.IRDTiffData Rdt1 = new RDTiffDataAccess.RDTiffDataClass();

它给了我一个错误:

Interop type 'RDTiffDataAccess.RDTiffDataClass' cannot be embedded. Use the applicable interface instead.

我已经搜索并尝试了通过更改Embed Interop Types = false的可能解决方案。

现在它编译正常,但在运行时,会抛出异常:

Retrieving the COM class factory for component with CLSID failed 
due to the following error: 80040154 Class not registered 
(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

我该如何解决这个问题?

我知道

这是一个老问题,但可以帮助其他人。尝试在"生成"部分将项目属性更改为 x86 平台目标。也许 dll 是针对 86 位构建的。

最新更新