# AutoCADDotNetLibrary.Debug
**Repository Path**: yaojing38/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-31
- **Last Updated**: 2023-11-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AutoCADDotNetLibrary.Debug
AutoCAD 二次开发,用于生成测试功能的脚本。

## 使用说明
在项目(.csproj)中使用如下示例:
```xml
net461
2013
2013
2023
true
```
## 属性
| 属性 | 说明 |
| ------------------- | ------------------------------------------ |
| AutoCADDebugVersion | 指定的测试环境的 AutoCAD 版本 |
| AutoCADMinVersion | 生成`bat`脚本的最小 AutoCAD 版本 |
| AutoCADMaxVersion | 生成`bat`脚本的最大 AutoCAD 版本 |
| IsDeleteCUIX | `注销.bat`脚本是否加入删除`cuix`文件的功能 |
| IsDynamicLoad | 是否启用`动态加载`的功能 |
> `$([System.Guid]::NewGuid())`是为了制造不同的 dll。动态加载时必须加上。
## 功能
#### 项目初始化时
- 注册[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 版本。(插件会直接加载)
3. 修改程序代码,并生成项目。
4. 命令输入`acload`,然后调试插件代码。
5. AutoCAD 手动关闭后,执行`aclear`。
##### debug 调试模式
`Visual Studio`菜单中`调试->附加到进程->选择acad.exe`可进入**debug 调试模式**。这种方式只能在`AutoCAD2015`及以上版本使用。
##### 问题
毕竟是**二进制方式**加载插件,确实会和**直接**加载不同,因此会出现一些`bug`。
> 本人不喜欢动态加载的方式调试插件。
### 创建 AutoCAD 未来的版本
目前默认值仅支持`2006-2023`版本,如需扩大版本,详见[示例](/build/Test2013/Test2013.csproj)。
```xml
```
## QQ 群
