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