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 的点坐标会没有数据出现,所以有个小技巧: 利用即使窗口打印出坐标点....
但是很不幸,这个方式会令vs偶尔崩溃...
为此我写了一个PointV类来将cad的点转为我的点类,令它在调试期间能够看到值.
去掉Acad打开时候出现的logo
Acad快捷方式,目标,设置/nologo这样默认打开就不会有logo出现,具体参考: 操作篇 cad的快捷图标中的启动参数
同理,c#项目调试的这里也可以加/nologo达到一样的效果.
多人协同调试cad
在gitee上面发布工程时候,如果你的cad是2008,然后其他人的cad是2012.2018.2019.2021.....之类的
那么最好约定大家都添加一个环境变量,填入自己的cad路径,然后在项目调试路径填入 $(DebugCAD)acad.exe,
这样工程就是共同的了.
如果改不同的环境变量要重启vs才能用上
调试期间允许编辑代码
测试工程是net framework...net standard不能用了....
请用vs2017以上,因为cad.net对于vs版本没有限制,所以建议追新...我是在vs2019上面实现的...
vs菜单栏: 工具--选项--按图设置一下,勾选一下 "编辑并继续"的框框...打钩√√√√
勾选了之后,设置断点在修改的代码行前面.
然后要注意一个问题,一个解决方案内,调试的代码不可以共用,如果发生共用一份代码,那么共用的项目要卸载,否则不能成功在断点捕捉的时候修改代码.
共用代码的时候,断点捕捉会有小锁头,不给你改代码.
这个时候就要卸载其他工程,保留下你这个正在修改的版本,做完再编译其他版本.
演示:
带有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出错位置出来,然后我用了一个同名空文件替代就好了...
(完)