kể từ khi nâng cấp dự án của tôi lên VS2010, bao gồm việc sử dụng MSBuild v4 thay vì 3.5 (và không thực hiện bất kỳ thay đổi nào khác), tôi gặp lỗi xây dựng sau và không biết cách sửa lỗi nó (đăng nhập từ CC.NET):Lỗi MSBuild: TlbImp kể từ khi nâng cấp lên VS 2010
<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>
Vấn đề: Một loại máy hợp lệ tương thích với thư viện kiểu đầu vào phải được chỉ định.
Nó chỉ áp dụng cho bản dựng x64 của dự án của tôi, x86 vẫn hoạt động tốt. Rõ ràng, nó cố gắng để xây dựng một lắp ráp interop x64 từ DLL x86 nằm trong "C: \ Assemblies". Khi thực hiện lệnh TlbImp với x64 DLL nằm trong một thư mục khác, nó hoạt động tốt. Tuy nhiên, tôi không biết làm thế nào tôi có thể cấu hình dự án của tôi để sử dụng tài liệu tham khảo COM khác nhau cho x86 và x64 xây dựng. Hệ điều hành mà dự án đang được biên dịch là WinXP x86. Tòa nhà hoạt động tốt khi sử dụng VS2005 + MSBuild 3.5
Mọi trợ giúp sẽ được đánh giá cao.
Tôi đã thử xây dựng dự án được nâng cấp với MSBuild v3.5, nhưng điều đó cũng không hoạt động. Nó phàn nàn về các mã NoWarn chưa biết (có lẽ mới trong 4.0).
Tôi gặp lỗi chính xác này sau khi chuyển sang TFS2010 và VS2010. Chúng tôi xây dựng tất cả các dự án của mình trong AnyCPU và không gặp bất kỳ vấn đề nào khi sử dụng CC.NET (trừ khi sử dụng x86 hoặc x64), và bây giờ làm với TFS. –
Bây giờ, hãy mang nó lên trên MS Connect, hãy xem điều gì xảy ra: http://connect.microsoft.com/VisualStudio/feedback/details/711406/tlbimp-error-since-vs2010-a-single-hợp lệ-máy-loại-tương thích-với-đầu vào-loại-thư viện-phải-được chỉ định – floele