# AutoCADDotNetLibrary.Debug **Repository Path**: matadorbb/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-07-08 - **Last Updated**: 2023-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoCADDotNetLibrary.Debug AutoCAD 二次开发,用于生成测试功能的脚本。 ![](https://img.shields.io/badge/IDE-vs2022-blue) ## 使用说明 在项目(.csproj)中使用如下示例: ```xml net461 2013 2013 2023 true ``` ## 功能 #### 生成 - 注册[AutoCAD 的注册表](https://help.autodesk.com/view/OARX/2019/CHS/?guid=GUID-70D60274-57E0-4B22-8D0C-3C7F212A7CAF),以便在本机测试插件时,无需`netload`手动加载`dll`。 > 启动`动态加载`时,失效。 - 生成`注册*.bat`和`注销.bat`的脚本,以便在其他电脑测试插件时,无需`netload`手动加载`dll`。 > `注册*.bat`会首先检测是否有此**注册路径**,成功时写入注册表,错误时不写入。 > `注销.bat`,删除插件的所有注册表路径;`IsDeleteCUIX`变量控制,是否加入删除同目录下`cuix`的功能。 - 生成项目的测试环境`launchSettings.json`。 #### 清理 当使用`Visual Studio`的`清理`功能时,删除`bat`脚本,并执行`注销.bat`里的内容。 #### 动态加载 `动态加载`:为了避免测试时频繁重启`AutoCAD`产生的概念。原理为插件测试时,不被**占用**,可以继续编译生成。 `nuget`包中的`AutoCADDotNetLibrary.Debug.dll`为`动态加载`插件,负责**反射**二进制读取生成的项目。 | 动态加载时的命令 | 说明 | | ---------------- | ---------------------------------------- | | `acload` | 加载生成的插件 | | `aclear` | 清理`AutoCADDotNetLibrary.Debug`的注册表 | ##### 步骤 1. 配置好项目后,生成项目(同时会注册`AutoCADDotNetLibrary.Debug.dll`插件)。 2. 手动打开对应的`AutoCADDebugVersion`的 AutoCAD 版本。(`AutoCADDotNetLibrary.Debug.dll`插件会直接加载并运行`acload`) 3. 修改程序代码,并生成项目。 4. 命令输入`acload`,然后调试插件代码。 5. AutoCAD 手动关闭后,执行`aclear`。 ##### debug 调试模式 `Visual Studio`菜单中`调试->附加到进程->选择acad.exe`可进入**debug 调试模式**。这种方式只能在`AutoCAD2015`及以上版本可使用。 ### 变量 | 变量 | 说明 | | ------------------- | ------------------------------------------ | | AutoCADDebugVersion | 指定的`debug`测试环境的 AutoCAD 版本 | | AutoCADMinVersion | 生成`bat`脚本的最小 AutoCAD 版本 | | AutoCADMaxVersion | 生成`bat`脚本的最大 AutoCAD 版本 | | IsDeleteCUIX | 是否`注销.bat`脚本加入删除`cuix`文件的功能 | | IsDynamicLoad | 是否启用`动态加载`的功能 | > `$([System.Guid]::NewGuid())`是为了动态加载时,制造不同的 dll,防止出现`bug`使用的。动态加载时必须加上。 ### 创建 AutoCAD 明年的版本 目前默认值仅支持`2006-2023`版本,如需扩大版本,详见[示例](/build/Test2013/Test2013.csproj)。 ```xml ``` ## QQ 群 ![QQ群](/docs/img/AutoCADDotNetLibrary%E7%BE%A4%E4%BA%8C%E7%BB%B4%E7%A0%81.png)