Interop类型无法嵌入

Interop类型无法嵌入

我正在使用C#在.NET 4.0框架(beta2)上创建一个Web应用程序。

当我尝试使用名为“ActiveHomeScriptLib”的程序集时,出现以下错误:

无法嵌入Interop类型'ActiveHomeScriptLib.ActiveHomeClass'。请改用适用的界面。

当我将框架更改为3.5版时,我没有任何错误。

什么是Interop Type,为什么只有在我使用4.0框架时才会出现这种情况?


慕少森
浏览 522回答 3
3回答

肥皂起泡泡

.NET 4.0允许将主互操作程序集(或者更确切地说,它所需的部分)嵌入到程序集中,这样您就不需要将它们与应用程序一起部署。无论出于何种原因,这个组件都无法嵌入 - 但听起来这对你来说不是问题。只需在Visual Studio 2010中打开程序集的“属性”选项卡,并将“嵌入互操作类型”设置为“False”。编辑:另请参阅Michael Gustus的答案,Class从您正在使用的类型中删除后缀。

眼眸繁星

在大多数情况下,此错误是尝试实例化COM对象的代码的结果。例如,这是一段启动Excel的代码:Excel.ApplicationClass xlapp = new Excel.ApplicationClass();通常,在.NET 4中,您只需要删除“Class”后缀并编译代码:Excel.Application xlapp = new Excel.Application();MSDN的解释在这里。

慕尼黑5688855

和Jan一样,我花了一段时间才得到它... = S所以对于那些因挫败感而蒙羞的人。右键单击您在项目“ 参考”下的解决方案资源管理器中添加的有问题的程序集。(在我看来是WIA)单击属性。Embed Interop Assembly应该有选择。将其设置为False
打开App,查看更多内容
随时随地看视频慕课网APP