netload 加载程序集抛异常----无法加载程序集
错误信息如下:
无法加载程序集。错误详细信息: System.BadImageFormatException: 未能加载文件或程序集“file:///G:\2013年
程序\CADdemo\CADApplication\XData\bin\Debug\XData.dll”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行
时新,无法加载此程序集。
文件名:“file:///G:\2013年 程序\CADdemo\CADApplication\XData\bin\Debug\XData.dll”
在 System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
在 System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
在 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence
assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
在 System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence
securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm,
Boolean forIntrospection, StackCrawlMark& stackMark)
在 System.Reflection.Assembly.LoadFrom(String assemblyFile)
在 Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
在 loadmgd()
警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
显示出一连串显示信息,主要意思就是添加的引用与CAD版本中的引用不一致。
本人是VS2010 +CAD2007,
通过如下设置,即可解决上述问题。
1、添加两个文件的引用,acmgd.dll 和acdbmgd.dll的引用,并设置两个dll文件的“复制到本地”属性为false ;
2、将项目属性中的目标框架设置为:
由原来的.NET Framework 4 改为 .NET Framework 3.5 或改为.NET Framework 3.5 client profile:
备注: .NET Framework 3.5 或改为.NET Framework 3.5 client profile两个版本的区别:
.NET Framework Client Profile 是完整 .NET Framework 3.5 SP1 的子集,以用戶端應用程式為目標。它提供了 Windows Presentation Foundation (WPF)、Windows Forms、Windows Communication Foundation (WCF) 以及 ClickOnce 功能的精簡子集。這可快速部署以 .NET Framework Client Profile 為目標的 WPF、Windows Forms、WCF 和主控台應用程式 (Console Application)。 (出处:http://technet.microsoft.com/zh-tw/library/cc656912(it-it,VS.90).aspx)