篇首语:本文由小编为大家整理,主要介绍了cad中netload 不能加载相关的知识,希望对你有一定的参考价值。
错误详细信息: System.IO.FileLoadException: 未能加载文件或程序集“file:///C:\Program Files\Autodesk\AutoCAD 2013\DgnLsPurge.dll”或它的某一个依赖项。不支持操作。 (异常来自 HRESULT:0x80131515)
文件名:“file:///C:\Program Files\Autodesk\AutoCAD 2013\DgnLsPurge.dll” ---> System.NotSupportedException: 尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理。此发行版的 .NET Framework 默认情况下不启用 CAS 策略,因此,此加载可能会很危险。如果此加载不是要对程序集进行沙盒处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=155569。
在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
在 System.Reflection.Assembly.LoadFrom(String assemblyFile)
在 Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
在 loadmgd()
1、首先打开CAD软件后,点击管理选项卡按钮。
2、然后就能在这里点击-加载应用程序按钮。
3、此时可以在这里看到加载卸载应用程序窗口。
4、就可以在这里选择文件类型程序。
5、在这里就可以看到已加载的应用程序。
6、最后,根据自己的需求选中文件后点击加载按钮就可以载入。
参考技术A你试下这个方法,找到这个文件(右键+属性+解锁),注意在红色方框内会提出一行文字,大致的意思是系统组止了该文件运行,点解锁了关掉CAD从开应该可以运行了。我也是遇到线型无法删除造成CAD文件过大,补丁能够运行了,但是问题还是无法清理线型。
参考技术B 在cad的安装目录里acad.exe.config; AdMigrator.exe.config这两个文件,用txt打开,添加:CAD 二次开发 -- 自动加载开发的DLL
CAD二次开发可以采用写扩展DLL的方式实现。该DLL的函数可以被CAD调用。
但是调用前,必须用命令netload 将该dll加载到CAD。
其实可以修改注册表,当CAD软件启动后,自动加载扩展DLL。
为此,我写了一个函数,很方便的修改注册表,达到自动加载dll的目的!
该函数支持各个版本cad。
1 //strCadRegKey = "HLD_CAD_Import"; //唯一注册标识 可用公司名称和程序名称 2 //strDll dll文件路径 3 private bool WriteRegistryKey(string strDll,string strCadRegKey) 4 { 5 try 6 { 7 RegistryKey localMachine = Registry.LocalMachine; 8 RegistryKey SOFTWARE = localMachine.OpenSubKey("SOFTWARE", true); 9 RegistryKey Autodesk = SOFTWARE.OpenSubKey("Autodesk", true);10 RegistryKey AutoCAD = Autodesk.OpenSubKey("AutoCAD", true);11 12 int result = 0;13 foreach (string subDir in GetRegSubDir(AutoCAD, "R"))14 {15 try16 {17 RegistryKey CadVersion = AutoCAD.OpenSubKey(subDir, true);18 19 string AcadVersion = GetRegSubDir(CadVersion, "ACAD-").FirstOrDefault();20 RegistryKey ACAD = CadVersion.OpenSubKey(AcadVersion, true);21 22 RegistryKey Applications = ACAD.OpenSubKey("Applications", true);23 24 //删除旧有记录25 try26 {27 Applications.DeleteSubKeyTree(strCadRegKey);28 }29 catch (Exception ex)30 { }31 32 RegistryKey MXCAD = Applications.CreateSubKey(strCadRegKey);33 MXCAD.SetValue("LOADCTRLS", 0x02);34 MXCAD.SetValue("LOADER", strDll);35 MXCAD.SetValue("MANAGED", 0x01);36 result++;37 }38 catch (Exception ex)39 {40 if (showMessage)41 System.Windows.Forms.MessageBox.Show(string.Format("注册时出错!{0}", ex.Message));42 }43 }44 45 if (result > 0 && showMessage)46 System.Windows.Forms.MessageBox.Show(string.Format("注册成功!"));47 return true;48 }49 catch (Exception ex)50 {51 52 return false;53 }54 }
技术交流联系qq 13712486
以上是关于cad中netload 不能加载的主要内容,如果未能解决你的问题,请参考以下文章