指点成金-最美分享吧

登录

cad中netload 不能加载

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了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打开,添加:



参考技术C 在runtime中增加 参考技术D 不知道你的CAD什么版本的,重新安装下CAD软件,安装的时候注意留意这个插件安装有没有报错.NET Framework

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 不能加载的主要内容,如果未能解决你的问题,请参考以下文章