cad.net vs调试问题

调试看不到文字,获取包围盒报错

cad.net GeometricExtents出错了 调试看不到文字

断点失效

如果断点失效,那么是这个原因:在Acad2008∽Acad2012使用的是net3.5,

所以需要修改安装目录下的 acad.exe.config 文件内容,才可以捕获断点:

<configuration>
    <startup>
        <supportedRuntime version="v2.0.50727"/>
    </startup>
</configuration>

修改系统变量
(setvar "NEXTFIBERWORLD" 0)

Point3d信息看不见

但是 Acad08 的点坐标会没有数据出现,所以有个小技巧: 利用即使窗口打印出坐标点....

img

但是很不幸,这个方式会令vs偶尔崩溃...
为此我写了一个PointV类来将cad的点转为我的点类,令它在调试期间能够看到值.

去掉Acad打开时候出现的logo

Acad快捷方式,目标,设置/nologo这样默认打开就不会有logo出现,具体参考: 操作篇 cad的快捷图标中的启动参数

同理,c#项目调试的这里也可以加/nologo达到一样的效果.

img

多人协同调试cad

在gitee上面发布工程时候,如果你的cad是2008,然后其他人的cad是2012.2018.2019.2021.....之类的

那么最好约定大家都添加一个环境变量,填入自己的cad路径,然后在项目调试路径填入 $(DebugCAD)acad.exe,

这样工程就是共同的了.

img

img

如果改不同的环境变量要重启vs才能用上

调试期间允许编辑代码

测试工程是net framework...net standard不能用了....

请用vs2017以上,因为cad.net对于vs版本没有限制,所以建议追新...我是在vs2019上面实现的...

vs菜单栏: 工具--选项--按图设置一下,勾选一下 "编辑并继续"的框框...打钩√√√√

img

勾选了之后,设置断点在修改的代码行前面.

然后要注意一个问题,一个解决方案内,调试的代码不可以共用,如果发生共用一份代码,那么共用的项目要卸载,否则不能成功在断点捕捉的时候修改代码.

共用代码的时候,断点捕捉会有小锁头,不给你改代码.

img

这个时候就要卸载其他工程,保留下你这个正在修改的版本,做完再编译其他版本.

演示:

img

带有using的引用命名空间不能改,除了顶部引用的using不能更改(添加了新的using就需要重启)之外,

其他地方只要再断点以下,可以随意修改代码,函数内修改和新增函数没啥问题,

包括using(transctio...... 事务管理器中的代码,只要不把CAD整崩溃了都行.

更新vs2019到16.3.2

更新了新版本之后,无论是否有断点都可以进行修改代码,但是不捕捉一次断点就不执行已被修改的内容,所以要应用修改就要捕捉一次断点.

调试错误:

反复空格导致错误产生,弹出错误语句: System.ArgumentException:“Form is not active”

在这句中产生: EditorUserInteraction UI = ed.StartUserInteraction(this)

检查是否因为允许捕捉面板的输入,如果是空格则进行了close()退出面板.

vs提示空值并显示AdInfoCenter.dll

cad08调试启动的时候,什么都不干就被vs反汇编检测到一个空值位置,

然后vs好心的弹出了AdInfoCenter.dll出错位置出来,然后我用了一个同名空文件替代就好了...

(完)

posted @ 2019-07-08 18:27  惊惊  阅读(1339)  评论(0编辑  收藏  举报