Interoptypes不能embedded

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

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

互操作types“ActiveHomeScriptLib.ActiveHomeClass”不能embedded。 改用适用的界面。

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

什么是Interoptypes,为什么只有在使用4.0框架时才会发生?

9 Solutions collect form web for “Interoptypes不能embedded”

.NET 4.0允许将主要的互操作程序集(或者说需要的部分)embedded到程序集中,这样就不需要将它们部署到应用程序中。

无论出于何种原因,这个大会不能被embedded – 但这听起来对你来说不是问题。 只需在Visual Studio 2010中打开程序集的“属性”选项卡,并将“embeddedInteroptypes”设置为“False”。

编辑:另请参见迈克尔Gustus的答案 ,从您正在使用的types中删除Class后缀。

在大多数情况下,这个错误是试图实例化COM对象的代码的结果。 例如,下面是一个启动Excel的代码:

 Excel.ApplicationClass xlapp = new Excel.ApplicationClass(); 

通常,在.NET 4中,只需要删除“Class”后缀并编译代码:

 Excel.Application xlapp = new Excel.Application(); 

MSDN的解释是在这里 。

像Jan一样,我花了一段时间才得到它。= S所以对于任何一个蒙蔽沮丧的人来说。

  • 右键单击您在项目引用下的解决scheme资源pipe理器中添加的问题程序集。 (在我的情况下WIA)
  • 点击属性。
  • 那里应该有embedded互操作程序集的选项
  • 将其设置为False

扩大Jon的正确答案。

这里的问题是你正在将新的“embedded互操作types”(或NoPIA)function与类types结合使用。 “embedded互操作types”function的工作原理是将PIA(主互操作程序集)中的所有types静态链接到引用程序集,从而消除了部署它的开销。

这个function对PIA中的大多数types都很有用,但是它有一定的限制。 其中之一是你不能embedded类(这是一个服务问题)。 米沙有一个详细的博客文章,为什么这是不被允许的

这里是在Visual Studio 2012中设置Embed Interop的地方

在这里输入图像描述

得到了解决scheme

转到引用右键单击所需的DLL你会得到选项“embedded互操作types”为“假”或“真”。

当我把TFS项目下拉到本地机器时遇到了这个问题。 据说,在写这个人的机器上工作的很好。 我只是改变了这个…

 WshShellClass shellClass = new WshShellClass(); 

对此…

 WshShell shellClass = new WshShell(); 

现在,它就像一个冠军!

我在使用Office 2007的VB.NET 2013中遇到了同样的问题,解决了这个问题:

VS 2013 VB.NET项目>道具>参考> Microsoft Word 12.0对象库>embedded互操作types:将True更改为False

http://digital.ni.com/public.nsf/allkb/4EA929B78B5718238625789D0071F307

出现此错误的原因是新项目中引用的TestStand API互操作程序集的embedded互操作types属性的默认值为true。 要解决此错误,请按照以下步骤将Embed Interop Types属性的值更改为False:在解决scheme资源pipe理器的项目的引用部分中selectTestStand Interop程序集引用。 在属性浏览器中findEmbed Interop Types属性,并将其值更改为False

  • 哪个VisualStudio插件与Mercurial?
  • 在使用System.DirectoryServices时尝试访问卸载的AppDomain
  • 两个具有相同名称空间的不同的DLL
  • 我如何在Visual Studio 2010中进行并行生成?
  • 在MSBuild中PreBuildEvent,BeforeBuild目标和BeforeCompile目标之间有什么区别?
  • Visual Studio 2010 nuget错误:底层连接已closures:无法build立SSL / TLS安全通道的信任关系
  • TFS:在源代码pipe理中按名称search文件
  • 在Visual Studio 2010中传递命令行参数?
  • Visual Studio项目中的文件夹“添加为链接”
  • 步入属性/函数(F11)不能按预期方式工作
  • 如何在Visual Studio 2010中的解决scheme资源pipe理器中查找文件?