Skip to content

About Directive Files

Introduction to Directive Files

Paquet Builder introduces a specific file type called "directive file", using the .pbd extension.
These text-based files contain instructions for Paquet Builder to create or modify a package/installer.

Why Use Directive Files?

Automate Package Creation – Useful for external applications needing to generate packages dynamically.
Modify Existing Projects – Enables automated transformations of existing projects.
Shell Extension Support – The Paquet Builder shell extension works with directive files.

💡 Recommended Format: Save directive files in UTF-8 (with or without BOM).

📖 Learn More: 👉 How to Open and Execute Directives.

Tip

You can create basic directive files directly from your existing project with the "Create Directive Skeleton" menu accessible from Paquet Builder's application button Application Button.

How Directive Files Work

Directive files follow a format similar to Windows INI configuration files.

Example of a Directive File (.pbd)

; Paquet Builder Directive File
; Version 1.1

[DirectiveVariables]
MYVERSION=1.0

[General]
Title=My archive {$MYVERSION$}  
ProjectTemplate=C:\MyWork\MyProject\baseproj.pbpx
OutputDir=C:\MyWork\MyProject\output
OutputName=MyArchive.exe
Company=G.D.G. Software
EXEType=0  ; 32-bit package
IsWizard=1
StorePaths=1
Folder=C:\MyWork\Source\
SubFolders=1
Icon=C:\MyWork\MyProject\media6.ico

[Source]
0=C:\MyWork\MyProject\Source\*.*  
1={$PBDIRECTPATH$}\Data Source Files\*.xml

Mandatory Sections

[General] – Configures the package settings (always required).
[Source] – Lists files to include (unless NoSourceSection=1 is set).

Warning

⚠️ Important: If NoSourceSection is not set to 1, files from a project template will be ignored.

[General] Section Parameters

This section defines the package configuration.
- Parameters can be specified in any order.
- Boolean values: Use 1 (true) or 0 (false).

Info

📌 If a field is missing, the default value from the template project is used.

The [General] section defines the core settings of the package.
- All parameters are optional, unless specified otherwise.
- Boolean values: 1 = Enabled (true), 0 = Disabled (false).

Parameter Description
BinFolder Defines the root folder for temporary output files.
CheckRights Checks for administrative rights (1=Yes, 0=No).
Company Defines the company name. Mandatory if using the command-line compiler.
CompressionCPUThreads Number of CPU threads used for compression (LZMA2 required).
CompressionEngine Defines the unpacking engine: 0=Auto, 1=Small engine, 2=Full-featured engine.
CompressionLevel Compression level for 7-Zip (0=No compression, 4=Ultra compression).
CompressionLZMA2 Enables LZMA2 compression instead of LZMA (1=Yes, 0=No).
CompressionSolid Enables solid compression (1=Yes, 0=No).
Copyright Defines the copyright string in the installer.
CryptFilenames Encrypts filenames in the archive (1=Yes, 0=No).
DestFolder Defines the destination folder for extracted files (do not use for Setup projects).
DigitalSign Enables digital signing (1=Yes, 0=No).
Email Specifies the company’s email address.
EncryptFiles Encrypts files during compression (1=Yes, 0=No).
EndPrompt Custom message shown at the end of the package execution.
EXEType Defines bitness: 0=32-bit (default), 1=64-bit.
ExistingArchive Specifies the full path to an existing 7-Zip archive instead of listing files manually.
FileDesc Sets the file description in version info.
FileDescUninst Sets the uninstaller file description in version info.
FileVerNum Sets the file version number in version info.
Folder Defines the root folder for storing path information.
HideProgress Hides the extraction progress window (1=Yes, 0=No).
Homepage Specifies the company’s website URL.
Icon Path to the package icon file.
IconUninst Path to the uninstaller icon file.
InstallMSI Indicates whether the file in SetupExec is a Windows Installer MSI file (1=Yes, 0=No).
IsWizard Enables the wizard-style interface (1=Wizard UI, 0=Standard UI).
KeepExistingProjectFiles If using ProjectTemplate, retains existing files (1=Yes, 0=No).
KeyProtect Defines the password used for encrypting files.
LiveUpdate Enables live update when using ProjectTemplate (1=Yes, 0=No).
MinimumElevatedRights Required elevation level if RequestElevatedRights=1: 0=Require Admin, 1=Highest Available.
MinimumUserRights Required user rights if CheckRights=1: 0=Admin, 1=Power User.
MultiVolumeArc Creates a multi-volume archive (1=Yes, 0=No).
NoSourceSection Disables the [Source] section (1=Yes, 0=No).
OutputDir (Required) Specifies the output directory for the generated package.
OutputName (Required) Defines the package filename (e.g., Setup.exe).
OverwriteReadOnly Allows overwriting read-only files (1=Yes, 0=No).
PackMode (Required) Specifies package type: 0=Standard, 1=Setup, 2=Archive.
PasswordToAsk Defines the password required to extract or install the package.
PFXFile Path to the PFX file for digital signing (ignored if SignCertifLocation=1).
PFXKey Password for the PFX file (if required).
ProdVerNum Defines the product version number in version info.
Project Path to the project file (.pbpx) that Paquet Builder should create.
ProjectTemplate Uses an existing project template and modifies it dynamically.
ReplaceStartup Enables file replacement at Windows startup (1=Yes, 0=No).
RequestElevatedRights Requests UAC elevation (1=Yes, 0=No).
SetupExec Path to the setup loader for installer-type projects.
SetupParams Command-line parameters for the setup loader.
ShowCompSelDlg Displays the Select Components dialog (1=Yes, 0=No).
SignCertifLocation Defines where to get the code signing certificate or the signing method: 0=PFX, 1=Windows Store, 2=Thumbprint,3=SignTool Commands,4=Azure Trusted Signing
SignMethod Defines the message digest method: 0=SHA-256 & SHA-1, 1=SHA-256 only, 2=SHA-1 only. Ignored if SignCertifLocation > 2.
Silent Enables silent mode (1=Yes, 0=No).
SizeCheck Activates size checking (1=Yes, 0=No).
StartPrompt Defines a custom startup prompt.
StorePaths Defines whether path information is stored (1=Yes, 0=No).
SubFolders Includes subfolders when adding files (1=Yes, 0=No).
Title (Required) Sets the title of the package.
TrustSignEndpoint Defines the Azure Trusted Signing account endpoint (must match your Azure region).
TrustSignCodeSigningAccountName Specifies the Azure Trusted Signing account name.
TrustSignCertificateProfileName Defines the certificate profile name for signing with Azure Trusted Signing.
UIModern Enables the modern UI interface: 0=Classic UI, 1=Modern UI. Overrides IsWizard if specified.

[Source] Section

This section lists files to be included in the package.
- Supports wildcards (e.g., *.exe, *.xml).
- Allows absolute or relative paths using directive variables.

Example Source Section

[Source]
0=C:\MyWork\Project\Source\*.*
1=C:\MyWork\Project\Readme.txt
2=C:\Windows\System\cabinet.dll
3={$PBDIRECTPATH$}\Data\*.xml

💡 Use Directive Variables like {$PBDIRECTPATH$} to avoid hardcoded paths.

[Components] Section

Defines optional components that users can select during installation.

Example Component Structure

[Components]
0=Documentation
1=Pictures

[Documentation.Source]
0=C:\Project\Help\*.chm

[Documentation.Properties]
Description=Application Documentation
Title=Documentation
StoringPath=1
  • Each component requires a [ComponentName.Source] and [ComponentName.Properties] section.
  • The Main component always exists and is defined in [Main.Properties].

📖 Learn more: 👉 Component Management.

Directive Variables

Directive variables allow dynamic path replacement in directive files.

Built-in Variables

Variable Meaning
{$PBDIRECTPATH$} Path to the directive file folder.
{$PBTEMPLATEPATH$} Path to the template project folder.
{$PBDOCPATH$} Path to the user's Documents folder.

Example Usage

[Source]
0={$PBDIRECTPATH$}\Source Files\*.*
1={$PBDIRECTPATH$}\Docs\*.pdf

💡 Now, you can move the directive file without breaking file paths!

[SignToolCmd] Section – Custom SignTool Commands

This section allows multiple digital signatures to be applied sequentially. ⚠️ Only read if SignCertifLocation is set to 3.

Example:

[SignToolCmd]
0=sign /fd SHA256 /tr "http://timestamp.digicert.com" /td SHA256 "{$BOUTPUTFILES}"
1=sign /fd SHA1 /tr "http://timestamp.digicert.com" /td SHA1 "{$BOUTPUTFILES}"

  • Each line represents one signing command.
  • Executed in order (e.g., first SHA-256, then SHA-1).

Define Custom Directive Variables

Create your own variables inside [DirectiveVariables].

[DirectiveVariables]
MYVERSION=1.0
OUTPUTNAME=Installer

Use them in any section:

[General]
Title=My archive {$MYVERSION$}
OutputName={$OUTPUTNAME$} {$MYVERSION$}.exe

Example: Simple Directive File Without Source

; Paquet Builder Directive File
[General]
Title=My archive 1
NoSourceSection=1
OutputName=Direct2.exe
OutputDir=C:\Build\Output
ProjectTemplate=C:\Build\Template.pbpx
LiveUpdate=1

💡 Use NoSourceSection=1 if your directive modifies an existing project.

Conclusion

Directive files provide a powerful way to automate Paquet Builder workflows.
✔ Easily generate packages via scripts.
Modify project parameters dynamically.
✔ Use variables to avoid hardcoded paths.

📖 Related Topics:
- 👉 How to Open and Execute Directives
- 👉 Working with Components