revit二次开发——制作插件安装包,自动写addin文件

这篇具有很好参考价值的文章主要介绍了revit二次开发——制作插件安装包,自动写addin文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备工作

1、打开visual studio
2、打开 工具—>扩展
3、搜索 installer,安装Microsoft Visual Studio Installer Projects
revit二次开发——制作插件安装包,自动写addin文件

安装包制作

1、新建项目,选中Setup Project

revit二次开发——制作插件安装包,自动写addin文件

2、进入项目,在Application Folder里添加要打包的文件

revit二次开发——制作插件安装包,自动写addin文件

2.1 文件夹说明

  1. Application Folder : 应用程序包含的文件设置。
  2. User’s Desktop : 用户桌面快捷方式设置。
  3. User’s Programs Menu : 用户启动菜单的快捷方式设置。

2.2添加卸载程序

  1. 卸载功能实现: C:\Windows\System32\msiexec.exe
  2. 在 Application Folder 文件夹中添加 msiexec.exe ,创建快捷方式,并设置属性 Arguments=/x {1028BF2E-832F-4B79-8D54-01CFB4BB30EC}
    (备注:{1028BF2E-832F-4B79-8D54-01CFB4BB30EC} 为 Setup项目属性中的ProductCode,当项目属性中ProductCode改变时,卸载这里的Arguments需要跟着改变)

2.3依赖框架

右键Setup项目–>属性–>Prerequisites
在系统必备的窗体中,勾选Framework 4.6(开发的应用程序所使用的Framework版本,示例中为4.6),选择【从组件供应商的网站上下载系统必备组件】(此选项会提示客户去微软官网下载Framework 4.6 )。
指定系统必备组件的安装位置其他选项:需要提前把Framework 指定版本的安装包下载下来放置相应目录下
启动条件:右键Setup项目–>View–>启动条件,.NET Framework属性Version修改为.NET Framework 4.6(与系统必备Framework版本一致)

3、以上配置完成,编译Setup项目即可在“Setup项目/Release”生成安装包。

自定义安装程序类

• 制作安装程序时,可以添加自定义安装程序类,在此类中编写安装过程中的一些自定义操作。
• 添加自定义安装操作类。
revit二次开发——制作插件安装包,自动写addin文件
•打包程序增加自定义操作

1.Setup项目右键–>View–>自定义操作,可以看到有四个子项:安装、提交、回滚、卸载,如右图所示

2.在Install上点击右键–>添加自定义操作–>Application Folder -->【主输出】(这样,重新生成后,安装之后就会执行 OnBeforeInstall 、 OnAfterInstall 、 BeforeInstall事件、 AfterInstall事件的代码了。)文章来源地址https://www.toymoban.com/news/detail-445607.html

示例:自动写addin文件

public class Installer1:Installer
    {
        private IContainer components = null;
        public Installer1()
        {
            InitializeComponent();
            base.BeforeInstall += InstallerTest_BeforeInstall;
            base.AfterInstall += InstallerTest_AfterInstall;
            base.AfterUninstall += InstallerTest_AfterUninstall;
        }

        private void InstallerTest_AfterUninstall(object sender, InstallEventArgs e)
        {
            string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            string path = folderPath + "\\Autodesk\\Revit\\Addins\\2018\\test.addin";
            try
             {
                 if (File.Exists(path))
                 {
                     File.Delete(path);
                 }
             }
             catch (Exception)
             {

             }
                
            }

        private void InstallerTest_AfterInstall(object sender, InstallEventArgs e)
        {
            string text = "test";
            string directoryName = Path.GetDirectoryName(typeof(Installer1).Assembly.Location);
            string text2 = directoryName + "\\test Program\\" + text + ".dll";
            string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            string path = folderPath + "\\Autodesk\\Revit\\Addins\\2018\\test.addin";
            string text3 = Guid.NewGuid().ToString();
                try
                {
                    if (File.Exists(item))
                    {
                        File.Delete(item);
                    }
                

                    File.WriteAllLines(item, new List<string>
                    {
                        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>",
                        "<RevitAddIns>",
                        "<AddIn Type=\"Application\">",
                        "<VendorId>ADSK</VendorId>",
                        "<Name>test</Name>",
                        "<Assembly>" + text2 + "</Assembly>",
                        "<AddInId>" + text3 + "</AddInId>",
                        "<FullClassName>" + text + ".App</FullClassName>",
                        "<VendorDescription>Zobon, www.zobonbim.com</VendorDescription>",
                        "</AddIn>",
                        "</RevitAddIns>"
                    }.ToArray(), Encoding.UTF8);

                }
                catch (Exception)
                {
                }   
        }

        private void InstallerTest_BeforeInstall(object sender, InstallEventArgs e)
        {
            //什么也不做
        }

        private void InitializeComponent()
        {
            components = new Container();
        }
    }

到了这里,关于revit二次开发——制作插件安装包,自动写addin文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 制作麒麟kylinV10SP2自动安装系统的镜像文件

    (目的)通过kickstart方式自动安装麒麟kylinV10SP2系统 一、安装一台kylinV10SP2虚拟机     虚拟机的作的是,定制kickstart自动安装ISO镜像     1:新建虚拟机,安装kylinV10SP2         workstations15Pro新建虚拟机,         使用ISO镜像(Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso),   

    2024年02月07日
    浏览(92)
  • 【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析

    在一些企业中,各类业务系统非常丰富,相互之间或对外提供很多的服务或接口 这些服务或接口中,有很多是需要强契约约束的,服务的提供方、服务的使用方必须遵守相同契约 这类服务最典型的就是RPC,其中应用广泛的有Dubbo、gRPC等 使用JMeter对这些RPC接口的测试,可以自

    2024年02月09日
    浏览(29)
  • [HBuilderX开发uniapp]自动代码格式化插件安装及配置

    目录 一、前言 二、插件位置 1.在HBuilderX中找到工具------插件安装​ 2.点击“安装新插件”------\\\"前往插件市场安装\\\"  3.插件市场搜索eslint-----点击下载------使用HBuilderX导入插件  三、小结 四、补充 HBuilderX作为H5 web开发的IDE其使用的普及化大幅提高,在应用中为使代码更加优美

    2023年04月08日
    浏览(35)
  • Revit中如何制作一个台阶?

    简易台阶制作,比绘制轴线复杂些,运用到的快捷键也比较多,因此需要多多操作,接下来我们就开始吧。 1、开始我们的第一步,此处我们首先新建一个族而不是项目。然后点击公制常规模型。     2、进入族后,我们可以看到左下角有项目管理器这个菜单栏,我们点击楼层

    2023年04月23日
    浏览(28)
  • phpcms_v9模板制作及二次开发常用代码

    ==== [{$r[catname]}] 所在版块的调用 0-1、调用指定栏目下面的内容页的内容 {pc:get sql=“SELECT * FROM v9_page where catid=31”} {loop $data $key KaTeX parse error: Expected \\\'EOF\\\', got \\\'}\\\' at position 4: val}̲ {str_cut(s… val[content]),705, ‘…’)} {/loop} {/pc} {str_cut( KaTeX parse error: Expected \\\'EOF\\\', got \\\'}\\\' at position 16:

    2024年02月07日
    浏览(30)
  • C# SolidWorks 二次开发 -从零开始创建一个插件(2)

    上一篇我详细讲解了如何创建一个插件,但是无界面无按钮,这种插件适合配合事件偷偷的在后台做点什么事情。今天这篇讲一下如何增加一些按钮到工具栏、菜单上去。 先告诉大家这个东西注册表在哪,因为solidworks在这方面做的不太好,插件你改个名字,就有多个工具栏

    2024年02月15日
    浏览(39)
  • Burp Unexpected_information插件二次开发教程

    Unexpected_information是一款开源的Burp插件, 该插件的主要场景是用来辅助渗透测试工作,它可以自动的 标记出 请求包中的一些敏感信息、JS接口和一些特殊字段,防止我们在测试中疏忽了一些数据包,能发现平时渗透测试中忽略掉的一细节信息。 Unexpected_information的功能主要有两

    2024年02月09日
    浏览(31)
  • QGIS二次开发六:VS不借助QT插件创建UI界面

    上一篇博客我们说了在VS中如何使用QT插件来创建UI界面,但是我们二次开发QGIS的第一篇博客就说了,最好使用OSGeo4W中自动下载的QT进行QGIS二次开发,这样兼容性是最好的,那么该如何在VS中不使用外部安装的QT以及QT的VS插件情况下进行UI界面的创建和使用呢? 如果你仔细看完

    2024年02月13日
    浏览(29)
  • 【CAD二次开发】给CAD添加TRUSTEDPATHS避免dll插件信任弹窗

    找到配置文件目录,遍历下面的每个配置文件; 找到 Variables 下的 TRUSTEDPATHS 项目;在后面添加新的目录即可,多个目录使用分号分隔;

    2024年02月07日
    浏览(30)
  • Revit构件显隐:参数和插件控制构件显隐性操作

    在这里,将它分享给大家~ 首先,我们在项目中任意绘制一道墙,然后任意布置一个带有门把手的门,如下图:   接着,我们【双击】进入这个门族的编辑界面,单击【插入】-【载入族】,找到族库中【建筑】-【门】-【门构件】-【拉手】的文件夹,(任意)选择一个门把手载

    2023年04月23日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包