9

我们正在将部分服务器移至 .net 4.0。作为第一步,我们已经迁移到 Vs2010,但没有更改任何项目的目标框架。

作为第二步,我将服务器的特定部分移动到目标 4.0,以便我们可以使用一些新功能。

在针对 4.0 的类库 DLL 上调用 TLBexp.exe 时遇到问题。此 DLL 还引用了许多针对 2.0 的 DLL。

我收到错误:TlbExp:错误 TX0000:无法加载文件或程序集 'file:Library.dll' 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

我正在调用随附的 TLBExp:Microsoft SDKs\Windows\v7.0A\bin\ 在我在 VS2010 命令提示符中调用的命令中,我引用了 v4.0.30319 二进制文件(例如 mscorlib.tlb)

是否允许在引用 2.0 库的 4.0 DLL 上运行 TLB?如果是,那么我收到此错误的任何原因。

这是我使用的确切命令调用: "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\tlbexp.exe" /silent /win32 /tlbreference:"C:\Windows\Microsoft.NET\Framework\ v4.0.30319\mscorlib.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\ System.Windows.Forms.tlb" /tlbreference:"C:\Windows\system32\stdole2.tlb" C:\Dev\Library.dll

谢谢

4

2 回答 2

20

我有一个针对 4.0 的程序集,它引用了另一个目标框架为 3.5 的程序集。

结果,我在“构建后”步骤中遇到了同样的错误。通过反复试验,我发现在这个文件夹中找到的TLBExp版本:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\可以成功生成TLB文件。

于 2011-04-19T02:03:46.127 回答
7

您可以使用以下 TlbExp 路径,该路径将根据项目框架版本自动获取:

$(TargetFrameworkSDKToolsDirectory)\tlbexp.exe
于 2012-09-19T17:37:08.867 回答