InnoSetup.ScriptBuilder
0.1.2-rc01
See the version list below for details.
dotnet add package InnoSetup.ScriptBuilder --version 0.1.2-rc01
NuGet\Install-Package InnoSetup.ScriptBuilder -Version 0.1.2-rc01
<PackageReference Include="InnoSetup.ScriptBuilder" Version="0.1.2-rc01" />
paket add InnoSetup.ScriptBuilder --version 0.1.2-rc01
#r "nuget: InnoSetup.ScriptBuilder, 0.1.2-rc01"
// Install InnoSetup.ScriptBuilder as a Cake Addin #addin nuget:?package=InnoSetup.ScriptBuilder&version=0.1.2-rc01&prerelease // Install InnoSetup.ScriptBuilder as a Cake Tool #tool nuget:?package=InnoSetup.ScriptBuilder&version=0.1.2-rc01&prerelease
InnoSetup.ScriptBuilder
This package is intended to build Inno Setup script files (*.iss) using C# fluent API. You can find the official Inno Setup documentation on Inno Setup web site.
Examples
Create builder
To get the script looking like this
[Setup]
AppName="BimTools.Support"
AppVersion="1.2.5.1634640046"
DefaultDirName="{userappdata}\SupportTools"
PrivilegesRequired=lowest
OutputBaseFilename="Tools.Support_2021_1.2.5.1634640046"
SetupIconFile="ToolsIcon.ico"
UninstallDisplayIcon="ToolsIcon.ico"
DisableDirPage=yes
[Files]
Source: "bin\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs;
Source: "SupportTools.addin"; DestDir: "{userappdata}\Autodesk\Revit\Addins\2019";
Source: "bin\Fonts\GraphikLCG-Medium.ttf"; DestDir: "{autofonts}"; Flags: onlyifdestfileexists uninsneveruninstall; FontInstall: "Graphik LCG";
Source: "bin\Fonts\GraphikLCG-Regular.ttf"; DestDir: "{autofonts}"; Flags: onlyifdestfileexists uninsneveruninstall; FontInstall: "Graphik LCG";
inherit your builder class from IssBuilder
base class
public class DemoBuilder : IssBuilder
{
public DemoBuilder()
{
Setup.Create("BimTools.Support")
.AppVersion("1.2.5.1634640046")
.DefaultDirName(@"{userappdata}\SupportTools")
.PrivilegesRequired(PrivilegesRequired.Lowest)
.OutputBaseFilename("Tools.Support_2021_1.2.5.1634640046")
.SetupIconFile("ToolsIcon.ico")
.UninstallDisplayIcon("ToolsIcon.ico")
.DisableDirPage(YesNo.Yes);
Files.CreateEntry(source: @"bin\*", destDir: InnoConstants.App)
.Flags(FileFlags.IgnoreVersion | FileFlags.RecurseSubdirs);
Files.CreateEntry(source: "SupportTools.addin", destDir: @"{userappdata}\Autodesk\Revit\Addins\2019");
Files.CreateEntry(source: @"bin\Fonts\GraphikLCG-Medium.ttf", destDir: @"{autofonts}")
.FontInstall("Graphik LCG")
.Flags(FileFlags.OnlyIfDestFileExists | FileFlags.UninsNeverUninstall);
Files.CreateEntry(source: @"bin\Fonts\GraphikLCG-Regular.ttf", destDir: @"{autofonts}")
.FontInstall("Graphik LCG")
.Flags(FileFlags.OnlyIfDestFileExists | FileFlags.UninsNeverUninstall);
}
}
or use BuilderUtils.CreateBuilder()
var builder = BuilderUtils.CreateBuilder(builder =>
{
builder.Setup.Create("BimTools.Support")
.AppVersion("1.2.5.1634640046")
.DefaultDirName(@"{userappdata}\SupportTools")
.PrivilegesRequired(PrivilegesRequired.Lowest)
.OutputBaseFilename("Tools.Support_2021_1.2.5.1634640046")
.SetupIconFile("ToolsIcon.ico")
.UninstallDisplayIcon("ToolsIcon.ico")
.DisableDirPage(YesNo.Yes);
builder.Files.CreateEntry(source: @"bin\*", destDir: InnoConstants.App)
.Flags(FileFlags.IgnoreVersion | FileFlags.RecurseSubdirs);
builder.Files.CreateEntry(source: "SupportTools.addin", destDir: @"{userappdata}\Autodesk\Revit\Addins\2019");
builder.Files.CreateEntry(source: @"bin\Fonts\GraphikLCG-Medium.ttf", destDir: @"{autofonts}")
.FontInstall("Graphik LCG")
.Flags(FileFlags.OnlyIfDestFileExists | FileFlags.UninsNeverUninstall);
builder.Files.CreateEntry(source: @"bin\Fonts\GraphikLCG-Regular.ttf", destDir: @"{autofonts}")
.FontInstall("Graphik LCG")
.Flags(FileFlags.OnlyIfDestFileExists | FileFlags.UninsNeverUninstall);
);
Getting results
String result
var builder = new DemoBuilder();
var result = builder.ToString();
Script file
var builder = new DemoBuilder();
builder.Build("demo.iss");
// or
BuilderUtils.Build<DemoBuilder>("demo.iss");
// or
BuilderUtils.Build(
builder =>
{
builder.Setup.Create("BimTools.Support")
.AppVersion("1.2.5.1634640046")
.DefaultDirName(@"{userappdata}\SupportTools");
builder.Files.CreateEntry(@"bin\*", InnoConstants.App)
.Flags(FileFlags.IgnoreVersion | FileFlags.RecurseSubdirs);
},
"demo.iss");
Not implemented sections and parameters
If the section you want to insert is not implemented you can use either Sections.CreateKeyValueSection()
or Sections.CreateParameterSection()
methods.
To insert not implemented parameters/directives of any kind of section use Parameter()
method.
// for key-value sections
Sections.CreateKeyValueSection("Messages")
.CreateEntry()
.Parameter("BeveledLabel", @"Inno Setup")
.Parameter("HelpTextNote", @"/PORTABLE=1%nEnable portable mode.");
// for parameter sections
Sections.CreateParameterSection("Registry")
.CreateEntry()
.Parameter("Root", RegistryKeys.HKU)
.Parameter("Subkey", @"Software\My Company\My Program")
.Parameter("ValueName", "Name")
.Parameter("ValueType", ValueTypes.String)
.Parameter("ValueData", "Test app");
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on InnoSetup.ScriptBuilder:
Package | Downloads |
---|---|
RxBim.Nuke
RxBim nuke plugin for building MSI |
|
ricaun.Nuke.PackageBuilder
Nuke PackageBuilder for Autodesk Application. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
6.3.0 | 222 | 10/22/2024 |
1.3.1 | 6,640 | 9/22/2023 |
1.3.0 | 9,783 | 3/20/2023 |
1.3.0-rc02 | 126 | 3/17/2023 |
1.3.0-rc01 | 491 | 3/15/2023 |
1.3.0-dev05 | 133 | 3/15/2023 |
1.3.0-dev04 | 192 | 3/15/2023 |
1.3.0-dev03 | 225 | 7/28/2022 |
1.3.0-dev02 | 178 | 7/28/2022 |
1.3.0-dev01 | 166 | 7/27/2022 |
1.2.2 | 5,297 | 5/5/2022 |
1.2.1 | 2,565 | 3/21/2022 |
1.2.0 | 1,395 | 3/2/2022 |
1.1.0 | 1,802 | 2/5/2022 |
1.1.0-dev01 | 214 | 2/4/2022 |
1.0.1 | 1,125 | 1/28/2022 |
1.0.0 | 2,787 | 12/3/2021 |
0.1.4 | 346 | 11/29/2021 |
0.1.4-rc02 | 237 | 11/29/2021 |
0.1.4-rc01 | 199 | 11/28/2021 |
0.1.3 | 3,508 | 11/25/2021 |
0.1.3-rc-01 | 3,288 | 11/25/2021 |
0.1.2 | 765 | 11/21/2021 |
0.1.2-rc01 | 657 | 11/21/2021 |
0.1.1 | 367 | 11/18/2021 |
0.1.1-rc02 | 259 | 11/18/2021 |
0.1.1-rc01 | 213 | 11/18/2021 |
0.1.0 | 550 | 10/30/2021 |
0.1.0-rc01 | 273 | 10/30/2021 |
0.1.0-dev003 | 237 | 10/28/2021 |
0.1.0-dev002 | 260 | 10/27/2021 |
0.1.0-dev001 | 261 | 10/26/2021 |