Skip to content

DllExport Manager

Denis Kuzmin [ github.com/3F ] edited this page Dec 28, 2018 · 12 revisions

DllExport -h

We finally changed distribution of our packages starting with v1.6 release.

Now you can easily use our tool via lightweight embeddable manager for all your amazing things.

Nightly builds

Please note, the manager from any nightly builds will point to stable public package. Therefore, you need to select custom package via -server or -pkg-link to test specific build. You can find about this in current documentation. To be sure: -build-info should point to related sha1 number.

Q/A list

URIs. Remote and local servers

Our manager provides two important keys to control the sources for packages: -server and -pkg-link.

For both commands, you should 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 default server for our packages (at July 2018): https://www.nuget.org/

But you can also use -pkg-link for direct linking to packages without nuget server:

DllExport -action Configure -pkg-link <link_to_.nupkg>

Also, some keys (like -pkg-link) may support local paths:

DllExport -action Configure -pkg-link D:/path/DllExport.1.6.2.nupkg

Possible format:

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

Offline versions

We also provide configured offline version that's already ready for you projects without internet connection at all.

  • Just unpack the contents of the archive into solution folder, and use the same commands as for basic manager.

Please note:

  • Offline version distributed as .zip archive with common compression by Deflate algorithm. Prefix/Postfix will contain the 'offline' word.
  • Inside, packages.offline directory contains an offline version of the .NET DllExport package, and this does not require internet connection for any build. This means that manager is configured for already received package through DllExport.bat wrapper in upper level of this archive.
  • Use the same commands to this wrapper as for the classic version, for example: DllExport -action Configure. But also note, some commands that are related to online version cannot be applied to offline package.

DllExport_Configure.bat

Just contains the -action Configure command for your convenience. Feel free to remove it if you don't need this file.

Or get this from our releases if, on the contrary, you need it: https://github.com/3F/DllExport/releases/latest

Proxy

[ v1.6.1+ ]

Use -proxy key to configure connection via proxy server.

The common format:

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

Samples:

  • -proxy 10.0.2.15 ...
  • -proxy 10.0.2.15:7428 ...
  • -proxy guest@10.0.2.15:7428 ...
  • -proxy guest:1234@10.0.2.15:7428 ...

Basic Commands

Configuring projects

  • To install/uninstall or to reconfigure your projects:
DllExport -action Configure [{server/version/pkg-link}]

Or just click DllExport_Configure.bat if you can't above.

Updating

  • To update already configured version by the new package:
DllExport -action Update [{server/version/pkg-link}]

Note: -action Update {..keys..} will also add this keys when restoring for build. You also can, for example: -force, -mgr-up ...

  • Force upgrading together with manager (recommended):
DllExport -action Upgrade [{server/version/pkg-link}]

Restoring remote package

  • To manually restore package (It should be automatically restored by any Build operation for your configured projects. But if you need, use this):
DllExport -action Restore

You can also find our offline versions from releases.

Receiving new package version

Please note: For actual receiving, you should remove old used package (e.g. ~ rmdir /S/Q packages\DllExport) before new. Otherwise, it will be still used as an cached package for your new commands.

  • Use -build-info & -version key to be sure.
  • v1.6.1+ Also provides -force key to remove it automatically, for example:
DllExport -mgr-up -force -dxp-version 1.6.1

Automation

[ v1.6.1+ ] Provides additional actions for portable configuration, for recover broken references, and for some other related automation.

  • Export / Recover / Unset

External storage

Initial v1.6 already provides optional external storage for your configuration data and more. This should be placed into solution folder as an .net.dllexport.targets file after selecting related option from -action Configure.

Modern v1.6.1+ now also provides -action Export to generate or update this file from console.

-action Export

This action will create or update you external storage that was described above.

DllExport -action Export

This command is also required for old config from 1.6 version if you plan to use together with Recover or Unset actions.

-action Recover

Will try to recover one or more missed references with your projects by external storage. For non-configured solution it can be considered as an Import feature.

DllExport -action Recover

Please read about External storage above before using this command.

-action Unset

Removing/Disabling our tool and its references with your specified projects by external storage. However, this will not affect the external storage itself. Thus, you can still use this for Recover action.

DllExport -action Unset

Please read about External storage above before using this command.

Samples

Updating to specific version from nuget server

  • To update package for already configured projects:
DllExport -action Update -dxp-version 1.6.1 
  • Force upgrading together with manager (recommended):
DllExport -action Upgrade -dxp-version 1.6.1
  • To update only manager:
DllExport -mgr-up -dxp-version 1.6.1

To configure via custom package for -pkg-link

DllExport -action Configure -pkg-link {url_to_nupkg}

To use custom package before executing the official

It was solution from here: https://github.com/3F/DllExport/issues/65#issuecomment-355662420

(set dst=fix%random%%random%) & (DllExport -pkg-link {path_to.nupkg} -action Configure -packages %dst%) & (rmdir /S/Q %dst%) & (DllExport -action Update)

It will use {path_to.nupkg} just for configuring. Then it will update settings to use selected package again (latest official).

...

Console

Copy of v1.6.2.1044 [ 9fa5bbb ]

DllExport - v1.6.2.1044 [ 9fa5bbb ]
Copyright (c) 2009-2015  Robert Giesecke
Copyright (c) 2016-2018  Denis Kuzmin [ entry.reg@gmail.com ] :: github.com/3F

Distributed under the MIT license
https://github.com/3F/DllExport

Based on hMSBuild and includes GetNuTool core: https://github.com/3F


Usage: DllExport [args to DllExport] [args to GetNuTool core]
------

Arguments:
----------
 -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 via predefined/exported data.
      * 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 from PkgPath to DllExport meta library.
 -dxp-target {path} - Relative path to entrypoint wrapper of the main core.
 -dxp-version {num} - Specific version of DllExport. Where {num}:
      * Versions: 1.6.0 ...
      * Keywords:
        `actual` - Unspecified local/latest remote version;
                   ( Only if you know what you are doing )

 -msb {path}           - Full path to specific msbuild.
 -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.
 -mgr-up               - Updates this manager to version from '-dxp-version'.
 -wz-target {path}     - Relative path to entrypoint wrapper of the main wizard.
 -pe-exp-list {module} - To list all available exports from PE32/PE32+ module.
 -eng                  - Try to use english language for all build messages.
 -GetNuTool {args}     - Access to GetNuTool core. 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

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

--------
Samples:
--------
 DllExport -action Configure
 DllExport -action Restore -sln-file "Conari.sln"
 DllExport -proxy guest:1234@10.0.2.15:7428 -action Configure
 DllExport -action Configure -force -pkg-link http://host/v1.6.1.nupkg

 DllExport -build-info
 DllExport -debug -restore -sln-dir ..\
 DllExport -mgr-up -dxp-version 1.6.1
 DllExport -action Upgrade -dxp-version 1.6.1

 DllExport -GetNuTool -unpack
 DllExport -GetNuTool /p:ngpackages="Conari;regXwild"
 DllExport -pe-exp-list bin\Debug\regXwild.dll
You can’t perform that action at this time.