Skip to content
Denis Kuzmin (github/3F) edited this page Mar 6, 2025 · 18 revisions

DllExport-help

Note the manager from a regular CI build points to a stable public package which was based on. Control it using -server or -pkg-link keys or use generated offline packages.

Servers and packages

Since DllExport Manager is based on hMSBuild (built-in +-> GetNuTool) you can configure and control distribution easily using -server and -pkg-link keys.

For both commands you must specify either hostname or IPv4 or IPv6 (via square brackets, like http://[::1]) for specified protocol:

  • Over http: http://server/, https://server/
  • Over ftp: ftp://server/, ftp://usr@server/, ftp://usr:pwd@server/
  • Over URL File Format: file:///D:/path/

The key -pkg-link allows direct linking to package without nuget server, for example:

DllExport -pkg-link <link_to_.nupkg>

It also supports local paths:

  • absolute: D:/path/, D:\path\, D:\\path\\, ...
  • relative: ../path/, ..\..\path\, ...

For example:

DllExport -pkg-link D:/path/DllExport.1.8.0.nupkg

Proxy

Use -proxy (1.6.1+) key to set up communication via a proxy server using the following format:

[usr[:pwd]@]host[:port]

For example:

Offline versions

Modern releases provides offline versions in addition to typical use. The offline versions are not requires internet connection at all. Everything was configured to use it in local builds or such.

But please note: this is not recommended as you need to keep the entire package (.dll, .exe, ...) permanently with your project and manually monitor and upgrade up to future releases etc.

But if you prefer it this way: Unpack all from latest offline.DllExport...zip (Deflate compression algorithm) into solution folder; Then follow the same steps as for the regular version (some commands related to online version cannot be applied to offline package).

Keys and options

-action Configure is the default action for 1.6.3+ [?].

Configuring projects

To install/uninstall or to reconfigure your projects:

DllExport -action Configure [server|version|pkg-link]

Details and options (screencast): https://www.youtube.com/watch?v=sBWt-KdQtoc

Updating

Note: starting with 1.7-RC you can also use GUI updater

To update an already configured version with a new package:

DllExport -action Update [server|version|pkg-link]

Note: some keys like -force, -mgr-up, ... will also be saved for Restore cases with the default (or predefined) keys. This is why it may be preferable to use the Upgrade action instead of Update.

Force upgrading together with manager (recommended by default):

DllExport -action Upgrade [server|version|pkg-link]

For example: DllExport-action Upgrade -dxp-version 1.8.0

Restoring package

To manually restore package (restored automatically during any build operation by *default):

DllExport -action Restore

*To disable automatic restoring during build, configure with -no-mgr.

Force receiving new package

All received packages are cached by default. This is a feature of GetNuTool.

In case you want to get the same (by number or ID) version with another build, you should first delete the cached. For example: rmdir /S/Q packages\DllExport.

Starting with 1.6.1+ you can use -force key to remove it automatically, for example:

DllExport -mgr-up -force -dxp-version 1.8.0

Use -build-info & -version keys to understanding what is actually being used at the moment.

Automation

DllExport 1.6.1+ provides also Export / Recover / Unset actions for more portable and self-repairing configuration. This helps to achieve even more flexibility, such as in build systems with CMake, perform backups, and also quickly automatically fix broken references and other related to automation things.

External storage

(optional) To manually prepare external storage use: DllExport -action Configure - [Data] - select .net.dllexport.targets. After that, configure what you need for your project, and then [Apply]. In order to return it back, select `Project files (.csproj, ...).

-action Export

The action will create a new or update an existing external storage that was described above.

DllExport -action Export

-action Recover

The action will attempt to restore all missing references in your projects using the external storage described above.

For a pure unconfigured solution this should be considered as an Import feature.

To recover or re-configure projects using links to external storage:

DllExport -action Recover

1.8+ To recover or re-configure projects to initial setup (project files .csproj etc.):

DllExport -action RecoverInit

-action Unset

The action will uninstall DllExport tool for specific projects according to external storage that was described above.

This will not affect the external storage itself that means after you will be able to use it again with Recover actions.

DllExport -action Unset

Built-in hMSBuild & GetNuTool

Modern DllExport 1.8 contains built-in hMSBuild (with built-in GetNuTool) which helps to solve a whole range of tasks as a single solution. To access it:

DllExport -GetNuTool {arguments to GetNuTool}
DllExport -hMSBuild {arguments to hMSBuild}

Use DllExport -hMSBuild -help or visit its page. The documentation for GetNuTool is here.

For example, build_and_run.cmd from BasicExport:

call .\DllExport -hMSBuild -t:restore -t:Build ~c Debug ~p x64
cd bin\x64\Debug\ & cls & UnmanagedCppConsole.exe & dir & pause

To configure events-actions for projects using vsSolutionBuildEvent:

DllExport -GetNuTool vsSolutionBuildEvent/1.16.1:../SDK & SDK\GUI

etc.

Examples

Upgrade to a specific official version

To update DllExport version up to 1.8.0 for already configured projects together with manager:

DllExport -action Upgrade -dxp-version 1.8.0

To update manager up to 1.8.0 then configure in the Wizard:

DllExport -mgr-up -dxp-version 1.8.0

To configure using custom package via -pkg-link

DllExport -pkg-link https://ci.appveyor.com/api/buildjobs/bbpuyu6crqjrmfny/artifacts/bin/Release/DllExport.1.7.4.nupkg

Console

Copy of 1.8+f4deb0e

.NET DllExport 1.8.0.17264+f4deb0e
Copyright (c) 2009-2015  Robert Giesecke
Copyright (c) 2016-2025  Denis Kuzmin <[email protected]> github/3F

MIT License
https://github.com/3F/DllExport


Usage: DllExport [keys] or built-in [-GetNuTool ... or -hMSBuild ...]

Keys
----
-action {type} - Specified action for Wizard. Where {type}:
  * Configure - To configure DllExport for specific projects.
  * Update    - To update pkg reference for already configured projects.
  * Restore   - To restore configured DllExport.
  * Export    - To export configured projects data.
  * Recover   - To re-configure projects using predefined data.
               `RecoverInit` to initial setup.
  * Unset     - To unset all data from specified projects.
  * Upgrade   - Aggregates an Update action with additions for upgrading.

-sln-dir {path}    - Path to directory with .sln files to be processed.
-sln-file {path}   - Optional predefined .sln file to be processed.
-metalib {path}    - Relative path to meta library.
-metacor {path}    - Relative path to meta core library.
-dxp-target {path} - Relative path to entrypoint wrapper of the main core.
-dxp-version {num} - Specific version of DllExport. Where {num}:
  * Versions: 1.7.4 ...
  * Keywords:
    `actual` - Unspecified local/latest remote version;
               ( Only if you know what you are doing )

-msb {path}           - Full path to specific MSBuild Tools.
-hMSBuild {args}      - Access to hMSBuild (built-in) https://github.com/3F/hMSBuild
-packages {path}      - A common directory for packages.
-server {url}         - Url for searching remote packages.
-proxy {cfg}          - To use proxy. The format: [usr[:pwd]@]host[:port]
-pkg-link {uri}       - Direct link to package from the source via specified URI.
-force                - Aggressive behavior, e.g. like removing pkg when updating.
-no-mgr               - Do not use DllExport for automatic restore the remote package.
-mgr-up               - Updates DllExport to version from '-dxp-version'.
-wz-target {path}     - Relative path to entrypoint wrapper of the main wizard.
-pe {args}            - To work with PE32/PE32+ module. -pe -help
-eng                  - Try to use english language for all build messages.
-GetNuTool {args}     - Access to GetNuTool (built-in) https://github.com/3F/GetNuTool
-debug                - To show additional information.
-version              - Displays version for which (together with) it was compiled.
-build-info           - Displays actual build information from selected DllExport.
-help                 - Displays this help. Aliases: -help -h /h -? /?

Flags
-----
 __p_call - To use the call-type logic when invoking DllExport

Samples
-------
DllExport -action Configure -force -pkg-link https://host/v1.7.4.nupkg
DllExport -action Restore -sln-file "Conari.sln"
DllExport -proxy guest:[email protected]:7428 -action Configure
DllExport -pe -list-all -hex -i bin\regXwild.dll

DllExport -mgr-up -dxp-version 1.7.4
DllExport -action Upgrade -dxp-version 1.7.4

DllExport -GetNuTool "Conari;regXwild;Fnv1a128"
DllExport -hMSBuild ~x ~c Release
DllExport -GetNuTool vsSolutionBuildEvent/1.16.1:../SDK & SDK\GUI