我有一个来自外部供应商的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 位构建的。