因为VisualStudio中微软官方的程序打包工具,无法实现Revit多版本插件的制作,所以我选择了NSIS来制作多版本插件。
一、使用NSIS向导创建脚本
1.1、打开NSIS的VNISEdit(需要使用管理员权限来运行NSIS)
1.2、使用新建脚本:向导创建一个脚本
在向导界面,我们可以根据自己的需求,来更改应用程序的相关信息,比如:应用程序名称、应用程序版本、应用程序出版人、应用程序网站、应用程序图标、安装程序图标、安装程序文件名称、安装程序语言、用户图形界面、压缩算法 等信息。
1.3、应用程序的目录与授权信息
默认目录PROGRAMFILES\My application 表示的路径是:C:\Program Files (x86),如果我们想将程序安装到:C:\Program Files ,那么我们只需要将默认目录改为:$PROGRAMFILES64\My application。
并且我们需要准备一个txt文档,来给安装程序添加相应的授权文件。(如果不添加,脚本编译会报错)
1.4、添加应用程序文件
将NSIS的示例文件和组都删除,然后自己创建组,可以根据图片,和我一样创建组。并且给主程序添加描述,将“允许用户选择要安装的组件”打上勾。
在主程序添加插件的dll文件(如果有其他的文件也可以相应的添加进来),目的目录不用更改。
在我们新建的组里面,添加调用Revit插件的Addin文件,并且将目的目录,改为对应Revit版本的Addins目录,例如,Revit 2018对应的Addins目录就是:C:\ProgramData\Autodesk\Revit\Addins\2018
1.5、完成脚本向导
在接下来的步骤中,可以根据需要修改相应的参数,或者直接下一步,完成脚本向导。
二、编辑NSIS脚本
Revit插件的Addin文件里面,需要指定插件程序集的路径,而当用户自己选择程序安装路径时,如果Addin文件里面的程序集路径没有做出相应的改变,那么插件就无法正常运行。
2.1、写入替换路径的方法
我们在向导生成的脚本下面,添加一个方法,用来实现安装过程中,就可以将Addin文件里面的程序集路径更改。
Function AdvReplaceInFile
Exch $0 ;file to replace