问题描述
||
我们正在将服务器的一部分移至.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.0的程序集,该程序集引用了另一个目标框架为3.5的程序集。
结果,我在“后期构建”步骤中遇到了相同的错误。通过反复试验,我发现在此文件夹中找到的TLBExp版本:
C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\bin\\NETFX 4.0 Tools\\
可以成功生成TLB文件。
HTH!
,您可以使用以下TlbExp路径,该路径将根据项目框架版本自动选择:
$(TargetFrameworkSDKToolsDirectory)\\tlbexp.exe