Skip to content

Commit

Permalink
Public release of the hMSBuild v2.0
Browse files Browse the repository at this point in the history
* NEW: Full support of the following special characters for MSBuild args. Issue #7.
       ```
        ' &!~`@#$^(+)_=%-;
       ```
       Compatible way for both 1.x and 2.0:
       #7 (comment)

* 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.
           #7 (comment)

* 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
  • Loading branch information
3F committed Dec 23, 2018
1 parent 2476849 commit a40c6ac
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 29 deletions.
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.2.2
2.0.0
70 changes: 42 additions & 28 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,51 +58,65 @@ Start with `hMSBuild -h`

Usage is same as it would be same for msbuild. But you also have an additional keys to configure hMSBuild and to access to GetNuTool.

v1.x
```
hMSBuild - 2.0.0
Copyright (c) 2017-2018 Denis Kuzmin [ entry.reg@gmail.com ] :: github.com/3F
Distributed under the MIT license
https://github.com/3F/hMSBuild
Usage: hMSBuild [args to hMSBuild] [args to msbuild.exe or GetNuTool core]
------
Arguments:
----------
-novswhere - Do not search via vswhere.
-novs - Disable searching from Visual Studio.
-nonet - Disable searching from .NET Framework.
-vswhere-version {num} - Specific version of vswhere. Where {num}:
* Versions: 1.0.50 ...
* Keywords:
`latest` to get latest available version;
`local` to use only local versions:
(.bat;.exe /or from +15.2.26418.1 VS-build);
-nocachevswhere - Do not cache vswhere. Use this also for reset cache.
-notamd64 - To use 32bit version of found msbuild.exe if it's possible.
-eng - Try to use english language for all build messages.
-GetNuTool {args} - Access to GetNuTool core. https://github.com/3F/GetNuTool
-only-path - Only display fullpath to found MSBuild.
-debug - To show additional information from hMSBuild.
-version - Display version of hMSBuild.
-help - Display this help. Aliases: -help -h -?
-no-vs - Disable searching from Visual Studio.
-no-netfx - Disable searching from .NET Framework.
-no-vswhere - Do not search via vswhere.
-vsw-priority {IDs} - Non-strict components preference: C++ etc.
Separated by space: https://aka.ms/vs/workloads
-vsw-version {arg} - Specific version of vswhere. Where {arg}:
* 1.0.50 ...
* Keywords:
`latest` - To get latest remote version;
`local` - To use only local versions;
(.bat;.exe /or from +15.2.26418.1 VS-build)
-no-cache - Do not cache vswhere for this request.
-reset-cache - To reset all cached vswhere versions before processing.
-notamd64 - To use 32bit version of found msbuild.exe if it's possible.
-stable - It will ignore possible beta releases in last attempts.
-eng - Try to use english language for all build messages.
-GetNuTool {args} - Access to GetNuTool core. https://github.com/3F/GetNuTool
-only-path - Only display fullpath to found MSBuild.
-force - Aggressive behavior for -vsw-priority, -notamd64, etc.
-debug - To show additional information from hMSBuild.
-version - Display version of hMSBuild.
-help - Display this help. Aliases: -help -h
------
Flags:
------
__p_call - Tries to eliminate the difference for the call-type invoking hMSBuild.bat
--------
Samples:
--------
hMSBuild -vswhere-version 1.0.50 -notamd64 "Conari.sln" /t:Rebuild
hMSBuild -vswhere-version latest "Conari.sln"
hMSBuild -notamd64 -vsw-version 1.0.50 "Conari.sln" /t:Rebuild
hMSBuild -vsw-version latest "Conari.sln"
hMSBuild -novswhere -novs -notamd64 "Conari.sln"
hMSBuild -novs "DllExport.sln"
hMSBuild -no-vswhere -no-vs -notamd64 "Conari.sln"
hMSBuild -no-vs "DllExport.sln"
hMSBuild vsSolutionBuildEvent.sln
hMSBuild -GetNuTool -unpack
hMSBuild -GetNuTool /p:ngpackages="Conari;regXwild"
"hMSBuild -novs "DllExport.sln" || goto err"
---------------------
Possible Error Codes: ERROR_FILE_NOT_FOUND (0x2), ERROR_PATH_NOT_FOUND (0x3), ERROR_SUCCESS (0x0)
---------------------
hMSBuild -no-vs "DllExport.sln" || goto bx
```

## License
Expand Down
60 changes: 60 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,66 @@
hMSBuild :: https://github.com/3F/hMSBuild
- - - - -

[v2.0] 2018.12.23

* 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



[v1.2.2] 2017.08.18

* FIXED: Updated GetNuTool v1.6.1:
Expand Down

0 comments on commit a40c6ac

Please sign in to comment.