TlbExp.exe错误:此程序集由运行时更新版本构建

时间:2011-04-14 20:46:30

标签: c# c#-4.0 .net-4.0 tlbexp

我们将服务器的一部分移动到.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

由于

2 个答案:

答案 0 :(得分:20)

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

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

HTH!

答案 1 :(得分:7)

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

$(TargetFrameworkSDKToolsDirectory)\tlbexp.exe