Note: This API documentation is for FAKE version 4. The migration API documentation can be found here. The API documentation for the new fake 5 modules can be found here

Vb6Helper

Enables building of Visual Basic 6 projects Also includes a do-it-all function that will embed interop side-by-side manifest to executables from Vb6 using functions from the Side-by-side helper module

Nested types and modules

TypeDescription
Vb6BuildParams

Parameters for running a VB6 build

Vb6Project

Represents a VB6 project

Vb6Reference

Represents a VB6 Reference

Vb6ReferenceVersion

Represents the version of a VB6 reference References from VB6 projects only care about Major.Minor versions

Vb6Version

Represents the version of a VB6 project ToString () will return a Maj.Min.Rev.Patch version string

Functions and values

Function or valueDescription
BuildAndEmbedInteropManifests(...)
Signature: getConfig:(Vb6BuildParams -> Vb6BuildParams) -> vb6Projects:seq<string> -> possibleAssemblies:seq<string> -> unit

All-In-one build and manifest function for VB6 applications referencing .net libraries

Paramteters

  • getConfig- function to alter default VB6 build parameters
  • vb6Projects - Paths to all .vbp files to build
  • possibleAssemblies - Paths to assemblies that may be referenced by the VB6 projects

Process

This function will:

  1. Determine which of the possibleAssemnblies are referenced by any of the provided .vbp files
  2. Temporarily register any referenced assemblies using RegAsm /codebase /tlb
  3. Run VB6 command line make on all provided .vbp projects
  4. Unregister all registered assemblies
  5. Generate and embed Side-By-Side interop appplication manifests in all generated VB6 executables
  6. Generate and embed Side-By-Side interop assembly manifest in all referenced assemblies
GetVb6ApplicationProjDetails(projects)
Signature: projects:seq<string> -> seq<Vb6Project>

Returns application details for provided .vbp files.

Information returned

  • Name of created binary file
  • Version as saved in .vbpfile
  • GUIDs of all referenced libraries and components

Usage

This is used for creating Side-By-Side interop manifests.

RegisterDependenciesForDevelopment(...)
Signature: getConfig:(Vb6BuildParams -> Vb6BuildParams) -> vb6Projects:seq<string> -> possibleAssemblies:seq<string> -> unit

Determines which of the provided assemblies are referenced by the provided VB6 projects, and registers them so the VB6 ide can find them.

Paramteters

  • getConfig- function to alter default VB6 build parameters
  • vb6Projects - Paths to all .vbp files to build
  • possibleAssemblies - Paths to assemblies that may be referenced by the VB6 projects
UnRegisterDependenciesForDevelopment(...)
Signature: getConfig:(Vb6BuildParams -> Vb6BuildParams) -> vb6Projects:seq<string> -> possibleAssemblies:seq<string> -> unit

Determins which of the provided assemblies are referenced by the provided VB6 projects, and un-registers them

Paramteters

  • getConfig- function to alter default VB6 build parameters
  • vb6Projects - Paths to all .vbp files to build
  • possibleAssemblies - Paths to assemblies that may be referenced by the VB6 projects
UpdateDependencyVersions(...)
Signature: getConfig:(Vb6BuildParams -> Vb6BuildParams) -> vb6Projects:seq<string> -> possibleAssemblies:seq<string> -> unit

Fixes dependency versions in VB6 project files

Paramteters

  • getConfig- function to alter default VB6 build parameters
  • vb6Projects - Paths to all .vbp to update references in
  • possibleAssemblies - Paths to assemblies that may be referenced by the VB6 projects

Running this task will:

  1. In all VB6 projects provided: Get all references that intersects with the provided assemblies arg
  2. Check if there is a version difference
  3. Update the VB6 project file to reflect the actual version used.

Note: Vb6 Reference versions are hex numbers not decimals like .net verions. This task handles this difference automatically.

Vb6Make getConfig vb6Projects
Signature: getConfig:(Vb6BuildParams -> Vb6BuildParams) -> vb6Projects:seq<string> -> unit

Executes a VB6 command line make on all provided VB6 projects

Builds will be executed in paralell

Parameters

  • getConfig - function to modify the build params record from default values
  • vb6Projects- Seq of paths to .vbp files to build