Skip to content

Releases: 3F/hMSBuild

2.5

16 Sep 18:33
@3F 3F
ae68d39

Choose a tag to compare

🧱 gnt~hMSBuild | gnt*hMSBuild | Self updating: hMSBuild -GetNuTool ~hMSBuild/2.5

📑 What's new in 2.5 ...
  • FIXED: Possible infinite self-call recursion due to built-in GetNuTool 1.9+ and hMSBuild invoking itself.
    Affected all versions with built-in GetNuTool 1.9 (hMSBuild 2.4 and 2.4.1)

  • FIXED: Calling built-in GetNuTool using keys with empty ""
    e.g. proxycfg="" etc.

  • NEW: Improved security via env protected properties (GetNuTool 1.10+) when using remote vswhere.
    (without a key -no-vswhere)
    More about: https://github.com/3F/GetNuTool?tab=readme-ov-file#tmodes-and-commands
    Or command: hMSBuild -GetNuTool ~/p:use=documentation

  • NEW: hMSBuild.bat edition now fully supports LF and uses this by default instead of CRLF.
    LF/CRLF of course affects the checksums, hMSBuild -GetNuTool +hMSBuild/2.5
    * LF (actual): hMSBuild.bat.sha1
    * CRLF (possible): hMSBuild.bat.crlf.sha1
    It means .gitattributes control for CRLF in hMSBuild.bat is not necessary anymore in cases when core.autocrlf=input etc.
    See related: #2
    However, this will not affect users who used the full edition hMSBuild.full.bat
    (related #11) which is still not protected due to incorrect shiftings in cmd processor when switching to LF.

  • NEW: Full hMSBuild edition access:

gnt ~hMSBuild /p:use=full
hMSBuild -GetNuTool ~hMSBuild /p:use=full
  • NEW: API. +:eva {in:unevaluated} {out:evaluated} {in:option}
:: evaluate argument
:eva {in:unevaluated} {out:evaluated} {in:option}
    ::  &(1) - Input via a variable. Use ` to apply " quotes inside "..." if [3]==1.
    :: *&(2) - Evaluated output via a variable.
    ::   [3] - Option to enable support for extra quotes. Values: 1 == ` as "
    :: !!0
  • NEW: API. +:inita {in:vname} {in:arguments} {out:index}
:: initialize arguments
:inita {in:vname} {in:arguments} {out:index}
    ::   (1) - Input variable name.
    ::  &(2) - Input arguments via a variable.
    :: *&(3) - Returns the reached index (maximum) via a variable.
    :: !!0
  • NEW: +.pkg.install.bat v1 support in hMSBuild nuget packages.
gnt ~hMSBuild
gnt *hMSBuild/2.5

Syntax and relevant documentation:
* hMSBuild -GetNuTool -help
* hMSBuild -GetNuTool ~/p:use=documentation
Or visit https://github.com/3F/GetNuTool

  • NEW: Self updating support: hMSBuild -GetNuTool ~hMSBuild/2.5

  • NEW: Added validate.hMSBuild.bat helper to validate core itself.

  • NEW: Added srv.create.bat to prepare local server access.

  • NEW: Official nuget package, hMSBuild:
    https://www.nuget.org/packages/hMSBuild/

  • CHANGED: Default remote vswhere is 3.1.7

  • CHANGED: Updated built-in GetNuTool 1.10.
    Anniversary (10 years) update GetNuTool 1.10 //github.com/3F
    adds new modes (install, run, touch, get, grab, pack); custom scripts;
    improves security; and became even more compact for .bat edition (now 7.87 KB); and ...
    https://github.com/3F/GetNuTool/releases/tag/1.10

  • NOTE: Self validation via command:

hMSBuild -GetNuTool ~& svc.gnt -sha1-cmp hMSBuild.bat sha1 -package-as-path

2.4.1

12 Feb 21:09
@3F 3F
caba551

Choose a tag to compare

hMSBuild 2.4.1 🩹 ESCT/L/E hotfixes

  • FIXED: Key handling when = sign;
    Errors like: ..."" was unexpected at this time.

2.4

08 Feb 18:58
@3F 3F
ee5a002

Choose a tag to compare

2.4

hMSBuild 2.4 - .bat scripts with full Package Manager inside for searching and wrapping MSBuild tools

📑 What's new in 2.4 ...
  • FIXED: -GetNuTool is corrupted.

  • FIXED: Fixed delayed return code as !ERRORLEVEL! when -GetNuTool key.

  • NEW: -no-less-4 key to not include versions less than 4.0 (Windows XP+)

  • NEW: -no-less-15 key to not include versions less than 15.0 (install-API/2017+)

  • NEW: ~c {name} Alias to p:Configuration={name}

  • NEW: ~p {name} Alias to p:Platform={name}

  • NEW: ~x Alias to m:NUMBER_OF_PROCESSORS-1 v:m

  • NEW: -vc key. Adds to -priority VC++ toolset.

  • NEW: -cs key. Adds to -priority C# / VB Roslyn compilers.

  • CHANGED: Redirected warn messages into stderr stream.

  • CHANGED: -vsw-priority renamed as -priority.
    The old key still is available for backward compatibility with 2.x;
    But marked as obsolete and not recommended to use anymore.

  • CHANGED: -vsw-version renamed as -vwshere.
    The old key still is available for backward compatibility with 2.x;
    But marked as obsolete and not recommended to use anymore.

  • CHANGED: Updated GetNuTool 1.9 embeddable package manager inside .bat
    https://github.com/3F/GetNuTool/releases/tag/1.9

  • NOTE: hMSBuild releases are now accompanied by a .sha1 file in the official distribution;
    At the same time, commits from which releases are published are signed with the committer's verified signature (GPG).

      Make sure you are using official, unmodified, safe versions.
      https://github.com/3F/hMSBuild/releases/latest
    

v2.3

29 Jan 14:36
@3F 3F
cf86a84

Choose a tag to compare

Public release of the hMSBuild 2.3

* NEW: Implemented `-vsw-as "args..."`
       Reassigns default commands to vswhere if used.

       For example:
       ```
       hMSBuild -only-path -vsw-as "-products Microsoft.VisualStudio.Product.BuildTools"
       ```
       Related Issues: #12, #14, #8,

* CHANGED: VS2017+. Using the most modern instance by default.
           You can also specify `-vsw-priority` and `-force` keys to use only what is needed.
           Related Issues: #14, #8.

* CHANGED: Updated wswhere to 2.8.4 by default.

* CHANGED: Updated GetNuTool 1.8
           https://github.com/3F/GetNuTool/releases/tag/1.8

           Most important fix for hMSBuild:
           "The remote server returned an error: (407) Proxy Authentication Required."
           Related issue: https://github.com/3F/DllExport/issues/133

* NOTE: An compiled.full version now will be distributed together with official hMSBuild releases.
           https://twitter.com/GitHub3F/status/1218224792970715136
           (zip packages) https://github.com/3F/hMSBuild/releases

v2.2

20 Jul 16:39
@3F 3F
2465d90

Choose a tag to compare

Public release of the hMSBuild 2.2

* FIXED: Fixed searching from MS BuildTools products. Issue #12 (Thanks @odalet).

* CHANGED: [VS2017+] hMSBuild will search now in ANY available products. PR #13 (Thanks @odalet).

* NOTE: In addition to changes above, please use `-vsw-priority` and `-force` keys to use only what is needed.
        Issues: #8, #14.

CI-build-41

19 Jul 18:56
@3F 3F
c195efd

Choose a tag to compare

CI-build-41 Pre-release
Pre-release

🎲 Nightly build of c195efd ➾ Worker image: Visual Studio 2015; Console: ci.appveyor.com/.../build-41

Only for tests 🗨 Commit message:

Merge pull request #13 from odalet/master

Issue #12 / -products *

v2.1

27 May 17:12
@3F 3F
4b368c9

Choose a tag to compare

Public release of the hMSBuild 2.1

* NEW: Support for VS2019 msbuild (Thanks @gerhardol)

* CHANGED: Removed possible last extra slash `\` from path, ie. ~ `..\Bin\\MSBuild.exe`
           When x32 for searching from Visual Studio with `-notamd64` key.
           Part of PR #11

* CHANGED: Default remote vswhere is 2.6.7.
           https://github.com/microsoft/vswhere/releases/tag/2.6.7

CI-build-39

27 May 14:21
@3F 3F
d3c2970

Choose a tag to compare

CI-build-39 Pre-release
Pre-release

🎲 Nightly build of d3c2970 ➾ Worker image: Visual Studio 2015; Console: ci.appveyor.com/.../build-39

Only for tests 🗨 Commit message:

Merge pull request #11 from gerhardol/bugfix/fix-10-vs2019

Support for VS2019 msbuild (Thanks @gerhardol)

CI-build-38

26 Apr 17:18
@3F 3F
c74ff05

Choose a tag to compare

CI-build-38 Pre-release
Pre-release

🎲 Nightly build of c74ff05 ➾ Worker image: Visual Studio 2015; Console: ci.appveyor.com/.../build-38

Only for tests 🗨 Commit message:

Updated License headers

$(APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED)

v2.0

23 Dec 14:49
@3F 3F

Choose a tag to compare

Public release of the hMSBuild v2.0

* NEW: Full support of the following special characters for MSBuild args. Issue #7.
       ```
        ' &!~`@#$^(+)_=%-;
       ```
       Compatible way for both 1.x and 2.0:
       https://github.com/3F/hMSBuild/issues/7#issuecomment-447507797

* NEW: Added `-vsw-priority` feature. Issue #8.
        ```
         -vsw-priority {IDs} - Non-strict components preference: C++ etc.
                               Separated by space: https://aka.ms/vs/workloads
        ```

* NEW: Added `-stable` key. To ignore possible beta releases in last attempts.

* NEW: Additional `-reset-cache` key. To reset all cached vswhere versions before processing.

* NEW: Optional aggressive behavior for `-vsw-priority`, `-notamd64` through `-force` key.

* FIXED: Fixed receiving of remote vswhere version specified by default (when no `-vswhere-version`).

* FIXED: Fixes usage of changed vswhere version specified via `-vswhere-version` when it was already cached.

* CHANGED: Algorithm of searching:

    * Versions:
      * VS2017+ ➟ VS2015, VS2013, ... ➟ .netfx

    * Architectures (configure via `-notamd64` key):
      * x64 ➟ x32

    * Priorities (configure via `-vsw-priority` and `-stable` keys).
      Specific workload components in more priority than pre-release products. See Issue #8

      1. Stable releases with selected workload components (C++ etc) ➟ Same via beta releases if allowed.
      2. Stable releases with any available components ➟ Same via beta releases if allowed.

* CHANGED: Updated keys: `-no-vswhere`, `-no-vs`, `-no-netfx`, `-vsw-version`, `-no-cache`.
           Old keys still are activated, but it will cause a warnings (stdout).

* CHANGED: Optional `__p_call` flag if you plan to use the call-type to invoke hMSBuild inside your scripts etc.

* CHANGED: Fully updated compression. Now only minified version will be distributed by default.
           Also, do not search the light versions: New compiling will not generate this at all.
           https://github.com/3F/hMSBuild/issues/7#issuecomment-447505688

* CHANGED: New URL for official latest stable batch-scripts:
           https://3F.github.io/hMSBuild/releases/latest/

           Other releases: https://github.com/3F/hMSBuild/releases

* CHANGED: Default remote vswhere is 2.5.2.

* CHANGED: Updated GetNuTool v1.7
           Release note: https://github.com/3F/GetNuTool/releases/tag/v1.7