# AutoCADDotNetLibrary.Debug **Repository Path**: fangmin723/AutoCADDotNetLibrary.Debug ## Basic Information - **Project Name**: AutoCADDotNetLibrary.Debug - **Description**: AutoCAD二次开发,用于生成测试功能的脚本。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2023-05-27 - **Last Updated**: 2024-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoCADDotNetLibrary.Debug 提供`AutoCAD`二次开发,用于生成测试功能的脚本。 ![](https://img.shields.io/badge/IDE-vs2022-blue) ## 快速使用 在项目(.csproj)中使用如下示例: ```xml net461 2013 2013 2024 ``` ## 属性 | 属性 | 说明 | | ------------------- | --------------------------------------------------------------------- | | AutoCADDebugVersion | 指定测试环境的 AutoCAD 版本。 | | AutoCADDescription | .NET 程序集的说明,默认值为项目名称。 | | AutoCADLoadctrls | 控制加载 .NET 程序集的方式和时间,默认值为`2`。 | | AutoCADMinVersion | 指定`bat`脚本的最小 AutoCAD 版本。 | | AutoCADMaxVersion | 指定`bat`脚本的最大 AutoCAD 版本。 | | IsDeleteCUIX | 生成`注销.bat`脚本时,是否加入删除`cuix`文件的功能,默认值为`false`。 | | IsDynamicLoad | 是否启用`动态加载`的功能,默认值为`false`。(**不建议使用**) | ## 功能 #### 基础知识 插件程序写入[注册表](https://help.autodesk.com/view/OARX/2019/CHS/?guid=GUID-70D60274-57E0-4B22-8D0C-3C7F212A7CAF),AutoCAD 则会自动加载插件程序,而无需手动`netload`加载。 #### AutoCADDebugVersion 当使用`Visual Studio`的`重新生成`功能时,项目写入`AutoCADDebugVersion`指定的 AutoCAD 版本注册表。并指定此 AutoCAD 版本的`acad.exe`为测试环境(生成`Properties\launchSettings.json`)。 #### AutoCADDescription 和 AutoCADLoadctrls - AutoCADDescription:注册表中的项 DESCRIPTION,代表.NET 程序集的说明,默认值为项目名称。 - AutoCADLoadctrls:注册表中的项 LOADER,代表控制加载 .NET 程序集的方式和时间,默认值为`2`。 - 1 - 检测到代理对象时加载应用程序 - 2 - 在启动时加载应用程序 - 4 - 在命令开始时加载应用程序 - 8 - 应用户或其他应用程序的请求加载应用程序 - 16 - 不加载应用程序 - 32 - 透明地加载应用程序 #### AutoCADMinVersion 和 AutoCADMaxVersion 生成`注册*.bat`和`注销.bat`的脚本,以便在其他电脑测试插件程序时,无需手动`netload`加载。 - `注册*.bat`:首先检测是否有此**注册表路径**,成功时写入注册表,错误时不写入。 - `注销.bat`:删除插件程序的所有注册表路径。 - `IsDeleteCUIX`:生成`注销.bat`脚本时,是否加入删除`cuix`文件的功能,默认值为`false`。 #### 清理 当使用`Visual Studio`的`清理`功能时,删除`bat`脚本,并执行`注销.bat`里的内容,运行完毕后删除。 ### IsDynamicLoad(不建议使用) #### 基础知识 `动态加载`:为了避免测试时频繁重启`AutoCAD`产生的概念。原理为插件测试时,不被**占用**,可以继续编译生成。 `nuget`包中的`AutoCADDotNetLibrary.Debug.dll`为`动态加载`插件,负责**使用反射技术**二进制读取生成的插件程序,之后插件程序就不会被**占用**。 | `AutoCADDotNetLibrary.Debug.dll` | 说明 | | -------------------------------- | ------------------------------------------ | | `acload` | 加载生成的插件程序。 | | `aclear` | 清理`AutoCADDotNetLibrary.Debug`的注册表。 | #### 不建议使用原因 毕竟是**二进制方式读取**加载插件程序,确实会和以**直接**加载方式不同,因此会出现一些`bug`。本人不喜欢动态加载的方式调试插件,但如果其他开发人员喜欢使用这种方式,也可**尝试使用**。 #### 使用说明 ```xml net461 2014 true $([System.Guid]::NewGuid()) ``` 1. 写入如上图的配置。 2. 修改程序代码,并生成项目。 3. AutoCAD 输入`acload`命令,即可使用最新的代码。 ##### debug 调试模式 `Visual Studio`菜单中`调试->附加到进程->选择acad.exe`可进入**debug 调试模式**。这种方式只能在`AutoCAD2015`及以上版本使用。 建议看看`Visual Studio`插件[ReAttach](https://marketplace.visualstudio.com/items?itemName=ErlandR.ReAttach)。 ### 兼容 AutoCAD 未来的版本 目前默认值仅支持`2006-2024`版本,如需扩大版本,详见[示例](/build/Test2013/Test2013.csproj)。 ```xml ``` ## QQ 群 ![QQ群](/docs/img/AutoCADDotNetLibrary%E7%BE%A4%E4%BA%8C%E7%BB%B4%E7%A0%81.png)