MyNameIsLiLei 发表于 2022-7-8 14:41:00

CAD二次开发多版本编译的一次记录

1.新建项目,这里以CAD2014、2016、2019三个版本举例。添加CAD2014、CAD2016、CAD2019三个项目

guohq 发表于 2022-7-8 16:04:00

狗尾续下貂
;建个对照表
(setq DLL '(("18.0" "CAD2010.dll")
            ("19.1" "CAD2014.dll")
            ("20.0" "CAD2016.dll")
            ("20.1" "CAD2016.dll")
            ("21.0" "CAD2017.dll")
            ("22.0" "CAD2018.dll")
            ("23.0" "CAD2019.dll")
            ))
(command "netload" (strcat "E:/TEST/" (cadr (assoc (substr (getvar "acadver") 1 4) DLL))) ) ;路径自己改

ProgramFancier 发表于 2022-7-9 18:15:00

我以前是通过自定义编译前事件来修改 .csproj 文件对不同版本CAD条件编译,只需要创建一个项目,缺点是一次只能编译一个版本并需要重新加载项目。
现在有 MSBuild 这一神器,一个 csproj 就可以对多个平台编译,楼主可以了解下。

MUSIC-DIE 发表于 2022-7-10 10:00:00


msbuild   yyds

MyNameIsLiLei 发表于 2022-7-8 14:44:00


2.给每个项目添加相关的引用。

MyNameIsLiLei 发表于 2022-7-8 14:52:00

3.我们在低版本里面添加代码,在高版本里面引用低版本里面的代码(或者新建一个公共目录,存放所有代码)。

MyNameIsLiLei 发表于 2022-7-8 14:53:00

4.这里给CAD2014添加了一个Test.cs类,并添加测试代码。

MyNameIsLiLei 发表于 2022-7-8 14:55:00

5.在CAD2016项目里右键 -- 添加 -- 现有项 ,找到上面Test.cs所在的文件目录 注意右下角的添加 ,边上有个三角小箭头 ,展开-- 点击添加为链接。







MyNameIsLiLei 发表于 2022-7-8 14:56:00

CAD2019操作同CAD2016,添加完后结果是这样的。

MyNameIsLiLei 发表于 2022-7-8 14:57:00

现在就可以直接同时生成多个版本的dll啦。
注:如果低版本和高版本在某些函数接口有差别的话,我们可利用条件编译针对不同的版本做不同的处理。





页: [1] 2
查看完整版本: CAD二次开发多版本编译的一次记录