Revit多版本代码编译
来源:互联网 发布:react.js angularjs 编辑:程序博客网 时间:2024/05/15 12:32
Revit开发,Visual Studio单份代码和解决方案生成多个版本插件设置
Revit二次开发和AutoCAD二次开发一样,都面临着一个很恶心的问题,就是多版本问题。Revit每年出新版本,API的改动虽说最近的几个版本改动不大,但总会有一些被标记为废弃。作为开发者,你也没法要求客户时刻紧跟Revit版本升级,这种情况下,一个插件就得支持好多个Revit版本。一旦有新Revit版本出现,就得有新的一份项目配置。之前我不知道有这个方法,自己用的是最笨的,每个版本都拷贝一份代码,根据不同版本的API修改对应版本的代码。但这样的问题很大,如果功能要修改,那我得修改多份代码这个就恶心了。。。最近网上看Arx文章,发现可以试试之前Arx多版本编译的方法可不可以用在Revit上,然后发现竟然可行。
下面让我们用具体的环境来说明这个方法:比如说,你现在已经有了一个插件的vs解决方案sln, 里面有个项目是针对Revit2016的设置和配置叫Exporter
,对应的本地文件是Exporter.csproj
文件如下图
现在,想要让插件支持Revit2017,可以这么干:
- 复制一份
Exporter.csproj
文件,改名为Exporter2017.csproj
,和原先的文件放在一起,如下图:
- 在Visual Studio中将复制后的新项目文件也添加到当前的解决方案中,你会发现新添加的
Exporter2017
项目下也同样有一份源码,在vs中看着是分属不同的项目,但其实他们在本地都是同一份源码文件。
- 这样分别对不同的项目设置引用dll,分别设置.net framework版本,分别设置输出路径。最重要的,是要对不同的项目设置一个条件编译符号,这个设置可以右键对应项目属性【生成】页签下,我对
Exporter2017
项目设置的编译符号是_Revit2017
,原先的Exporter
项目设置的是_Revit2016
,如图
- 在代码中,针对版本间不同的API,我们可以使用
#if
,#elif
,#endif
和我们定义好的条件编译符号来控制哪段代码在哪个项目下起作用,如下图。同时,当一个源文件同时属于两个项目时,可以通过vs上方的导航条来切换当前源码所属的上下文。
阅读全文
0 0
- Revit多版本代码编译
- Revit 项目文件的版本
- Revit中英文版本快速切换方法
- Revit 插件编译不通过的解决办法
- Revit 二次开发 - 多文档处理
- 多版本opencv编译配置
- Building Coder(Revit 二次开发) - NewFamilyInstance() 重载版本的选择
- API判断本机安装的Revit版本信息
- 获取本机安装的Revit版本信息
- 编译一次,版本增加1,vs2005的宏代码
- VC高版本编译早期代码常见错误...
- 关于代码编译打包和版本管理的一些事情
- iOS_根据系统版本编译不同的代码
- android系统版本代码的下载、编译及发布
- 下载编译chromium代码-android版本亲测60
- VC++2010下使用MFC+托管代码访问Revit
- RevitAPI: Revit 2016里的Python代码例子Sample code
- Revit中Dynamo编程——Python代码
- javascript创建对象属性
- (4)请求头:referer。响应头:状态行、refresh、Content-Disposition、页面缓存
- react-router4的坑
- Jenkins 环境搭建
- AWS配置使用 SKYNET
- Revit多版本代码编译
- vi编辑器
- JavaSE总结之第一个java程序
- POJ 3176 Cow Bowling
- 测绘案例分析
- c#WinForm固定窗口大小
- C#进行CAD二次开发eLockViolation问题
- ubuntu下安装java及配置环境
- TCP网络通讯如何解决分包粘包问题