首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSBuild:升级到VS 2010后出现TlbImp错误

MSBuild:升级到VS 2010后出现TlbImp错误
EN

Stack Overflow用户
提问于 2010-05-11 00:04:35
回答 4查看 14.7K关注 0票数 11

由于我将项目升级到VS2010,包括使用MSBuild v4而不是3.5 (并且没有做任何其他更改),我得到了以下构建错误,并且不知道如何修复它(来自CC.NET的日志):

代码语言:javascript
复制
  <target name="ResolveComReferences" success="false">
   <message level="high"><![CDATA[C:\Programme\Microsoft SDKs\Windows\v7.0A\bin\TlbImp.exe c:\Assemblies\NMSDVDXU.dll /namespace:NMSDVDXLib /machine:X64 /out:obj\x64\Release\Interop.NMSDVDXLib.dll /sysarray /transform:DispRet /reference:c:\Assemblies\Bass.Net.dll /reference:c:\Assemblies\LogicNP.FileView.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Management.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:C:\WINDOWS\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll ]]></message>
   <error code="TI0000" file="TlbImp"><![CDATA[A single valid machine type compatible with the input type library must be specified.]]></error>
   <warning code="MSB3283" file="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets" line="1558" column="9"><![CDATA[Die Wrapperassembly für die Typbibliothek "NMSDVDXLib" wurde nicht gefunden.]]></warning>
   <message level="high"><![CDATA[C:\Programme\Microsoft SDKs\Windows\v7.0A\bin\TlbImp.exe c:\Assemblies\StarBurnX12.dll /namespace:RocketDivision.StarBurnX /machine:X64 /out:obj\x64\Release\Interop.RocketDivision.StarBurnX.dll /sysarray /transform:DispRet /reference:c:\Assemblies\Bass.Net.dll /reference:c:\Assemblies\LogicNP.FileView.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Management.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:C:\WINDOWS\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll ]]></message>
   <error code="TI0000" file="TlbImp"><![CDATA[A single valid machine type compatible with the input type library must be specified.]]></error>
   <warning code="MSB3283" file="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets" line="1558" column="9"><![CDATA[Die Wrapperassembly für die Typbibliothek "RocketDivision.StarBurnX" wurde nicht gefunden.]]></warning>
  </target>

问题:必须指定与输入类型库兼容的单个有效计算机类型。

它只适用于我的项目的x64构建,x86仍然工作得很好。显然,它试图从位于“C:\ x64”中的x86 DLL构建一个x86互操作程序集。当对位于不同目录中的x64 DLL执行TlbImp命令时,它工作正常。但是,我不知道如何将我的项目配置为对x86和x64版本使用不同的COM引用。正在编译项目的操作系统是WinXP x86。使用VS2005 + MSBuild 3.5时,构建工作正常

任何帮助都将不胜感激。

我尝试使用MSBuild v3.5构建升级后的项目,但也不起作用。它抱怨未知的NoWarn代码(可能是4.0中的新代码)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-07 16:56:40

我终于想出了“解决方案”。正如MS Connect上指出的,x64构建行为的改变显然是故意的。在VS2010和更高版本中,您的应用程序的x64构建需要x64构建系统,因此我被迫将构建系统升级到x64 (这基本上意味着重新安装所有内容)。然后,对于x64构建,您必须使用MSBuild的x64版本,该版本位于"Framework64“文件夹中(有关Visual Studio blog: Building on Cross targeting scenarios and 64-bit MSBuild的更多详细信息)。

票数 2
EN

Stack Overflow用户

发布于 2011-04-14 19:02:23

我们在x64的com引用中遇到了类似的问题(但错误消息不同),结果发现项目文件中缺少AnyCPU (类似Adam Driscoll的注释)。这意味着在x86和x64构建中都使用了x86互操作。

在csproj文件中,将此节点添加到每个节点下。在构建项目时,将创建/使用独立于平台的互操作。

票数 2
EN

Stack Overflow用户

发布于 2011-04-08 09:43:39

这可能是由于缺少平台目标节点的项目问题造成的:Visual Studio 2010 64-bit COM Interop Issue

不太确定这是不是同样的问题...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2804223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档