Найти в Дзене

Создание установщика для плагина Revit с помощью Inno Setup

Добрый день. В этой статье мы подробно разберем процесс создания установщика для плагина Autodesk Revit с помощью Inno Setup. Inno Setup — бесплатный инструмент для создания установщиков для Windows. С ходу возможно не очевидно как скачать с сайта, но нужно нажать на любую из двух ссылок 1. Плагин создадим на базе нашего шаблона, который разбирали в этой статье: MVVM в создании плагинов под Revit. Шаблон MVVM (.NET 8.0) Либо можете сразу вытянуть с GitHube: https://github.com/BelikAE/TemplateRevitMVVM2025 Поскольку у меня есть этот шаблон, я создам через него, дав название проекту FindWallType 2. Изменим наименование addin - файла на FindWallType. 3. Скорректируем содержимое FindWallType.addin. Создав новый GUID(Средства-создать GUID) <RevitAddIns>
<AddIn Type="Application">
<Name>FindWallType</Name>
<Assembly>FindWallType\FindWallType.dll</Assembly>
<AddInId>298B0F0D-9E1D-4D11-852B-F5F8614BB0F9</AddInId>
<FullClassName>FindWallType.App</FullClassName>
<Text>FindWallType</

Добрый день. В этой статье мы подробно разберем процесс создания установщика для плагина Autodesk Revit с помощью Inno Setup.

Inno Setup — бесплатный инструмент для создания установщиков для Windows.

Что нам понадобится:

  • Inno Setup (скачать с официального сайта : https://jrsoftware.org/)
  • Файлы плагина Revit (.dll и .addin)

С ходу возможно не очевидно как скачать с сайта, но нужно нажать на любую из двух ссылок

1. Плагин создадим на базе нашего шаблона, который разбирали в этой статье: MVVM в создании плагинов под Revit. Шаблон MVVM (.NET 8.0)

Либо можете сразу вытянуть с GitHube: https://github.com/BelikAE/TemplateRevitMVVM2025

Поскольку у меня есть этот шаблон, я создам через него, дав название проекту FindWallType

-2
-3

2. Изменим наименование addin - файла на FindWallType.

-4

3. Скорректируем содержимое FindWallType.addin. Создав новый GUID(Средства-создать GUID)

-5
-6
<RevitAddIns>
<AddIn Type="Application">
<Name>FindWallType</Name>
<Assembly>FindWallType\FindWallType.dll</Assembly>
<AddInId>298B0F0D-9E1D-4D11-852B-F5F8614BB0F9</AddInId>
<FullClassName>FindWallType.App</FullClassName>
<Text>FindWallType</Text>
<VendorId>RevitPlugins</VendorId>
<VendorDescription>RevitPlugins</VendorDescription>
</AddIn>
</RevitAddIns>

4. Соберем решение (Сборка - Собрать решение)

-7

Наши dll лежат в папке проекта bin/ Debug/"Платформа которую указана в свойствах"

-8

5. Теперь у нас есть addin-файл и собранный проект. Переходим к созданию установщика. Создаем файл с расширение .iss - "FindWallType.iss". Я располагаю данный файл в папке проекта, там же где и addin-файл.

-9

6. Открываем данный файл через Inno Setup и вставляем следующий код.

[Setup]
AppId=FindWallType
AppName=FindWallType
AppVersion=1.0
AppPublisher= Revit Plugins
DefaultDirName={userappdata}\FindWallType
DisableDirPage=yes
DefaultGroupName=FindWallType
OutputDir=Output
OutputBaseFilename=FindWallType_Setup
Compression=lzma
SolidCompression=yes
WizardStyle=modern
PrivilegesRequired=lowest
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
; Основные файлы плагина
Source: "bin\Debug\net8.0-windows10.0.17763.0\*.dll"; DestDir: "{userappdata}\Autodesk\Revit\Addins\2025\FindWallType"; Flags: ignoreversion
; Файлы для Revit 2025
Source: "FindWallType.addin"; DestDir: "{userappdata}\Autodesk\Revit\Addins\2025"; Flags: ignoreversion
[Icons]
Name: "{group}\Uninstall FindWallType"; Filename: "{uninstallexe}"
-10

Немного дадим пояснения по свойствам:

[Setup]
AppId=FindWallType ; Уникальный идентификатор приложения
AppName=FindWallType ; Название приложения
AppVersion=1.0 ; Версия
AppPublisher=Revit Plugins ; Издатель
DefaultDirName={autopf}\FindWallType ; Папка установки по умолчанию
DisableDirPage=yes ; Отключает страницу выбора папки
DefaultGroupName=FindWallType ; Название группы в меню Пуск
OutputDir=Output ; Папка для готового установщика
OutputBaseFilename=FindWallType_Setup ; Имя файла установщика
Compression=lzma ; Тип сжатия
SolidCompression=yes ; Использовать твердое сжатие
WizardStyle=modern ; Стиль мастера установки
PrivilegesRequired=lowest ; Права администратора

Как настраиваются пути к файлам можно понять по аналогии к данному проекту. Путь относительный исполняемого файла FindWallType.iss

7. Компилируем установщик (Build - Compile).

-11

8. После установки Setup будет лежать в папке Output. Путь расположения установщика определяйте сами, как вам удобно.

-12

9. Тестируем Setup. Устанавливаем по принципу далее-далее-далее.

-13

10. Видим что после установке в нашей папке C:\Users\%USERNAME%\AppData\Roaming\Autodesk\Revit\Addins\2025
появились необходимые нам файлы.

-14

11. Открываем Revit и тестируем плагин на базовом архитектурном проекте. Видим что все работает, значит нигде ничего не пропустили.

-15

12. Если FindWallType.iss и папка Output не появились в проекте, тогда добавьте его вручную нажав "Обозревателе решений" на кнопку "Показать все файлы". Затем выбираем наш файл и папку и добавляем в проект.

-16

по итогу будет как то так:

-17

Проект на GItHub: https://github.com/BelikAE/FindWallType

Теперь мы научились создавать простенький установщик с помощью Inno Setup. Для каждого проекта он может быть уникальный в зависимости он структуры и способа расположения выходных файлов.

Пишите в комментарии свои вопросы и какие темы еще разобрать.