我正在使用C#在.NET 4.0框架(beta2)上创建一个Web应用程序.
当我尝试使用名为"ActiveHomeScriptLib"的程序集时,出现以下错误:
无法嵌入Interop类型'ActiveHomeScriptLib.ActiveHomeClass'.请改用适用的界面.
当我将框架更改为3.5版时,我没有任何错误.
什么是互操作类型,为什么只有在我使用4.0框架时才会出现这种情况?
我的项目中需要引用一个程序集,该程序集需要将“嵌入互操作类型”设置为false才能成功进行编译。如果不放置此选项,则会出现编译时错误:
A reference was created to embedded interop assembly 'Interop.MSTSCLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because of an indirect reference to that assembly created by assembly 'AxInterop.MSTSCLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Consider changing the 'Embed Interop Types' property on either assembly.
Run Code Online (Sandbox Code Playgroud)
如果我只是有一个项目,我会将选项设置为false而不用担心它,但是现在我正在使用它制作一个nuget程序包,我试图找到一种在程序包设置选项的方法已添加。
我的nuspec文件当前具有以下内容(省略了元数据):
<files>
<file src="Interop.MSTSCLib.dll" target="lib\net40" />
<file src="AxInterop.MSTSCLib.dll" target="lib\net40" />
</files>
Run Code Online (Sandbox Code Playgroud)
我查看了nuget文档,但找不到如何执行此操作。可能吗?