Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add filter or priorities for searching MSBuild together with specific workload components #8

Closed
3F opened this issue Dec 15, 2018 · 1 comment

Comments

@3F
Copy link
Owner

3F commented Dec 15, 2018

We need to provide some priorities in search result when user's machine contains 2 or more VS2017+ installed instances with different components.

The basic example is for C++ projects and several versions of installed VS2017:

  • The one of these contains only - [.NET desktop development]
  • Other, only - [Desktop development with C++]

~

C:\Program Files (x86)\VS\2017\Professional\MSbuild\
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\

Current version may return path for what is not needed:

error MSB4019: 
The imported project "C:\Program Files (x86)\VS\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Default.props" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

So we need to specify some priorities for searching via IDs.

The priority means only trying with these in first attempts. But, I think also about -force key for more strong behaviour.

@3F 3F added this to the v2.0 milestone Dec 15, 2018
3F added a commit that referenced this issue Dec 20, 2018
Also changed key `-vswhere-version`, this is obsolete now. Use `-vsw-version`
@3F
Copy link
Owner Author

3F commented Dec 20, 2018

done.

 -vsw-priority {IDs} - Non-strict components preference: C++ etc.
                       Separated by space: https://aka.ms/vs/workloads

Non-strict

I'll add also -force key for this feature soon

@3F 3F closed this as completed Dec 20, 2018
3F added a commit that referenced this issue Dec 23, 2018
* 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
3F added a commit that referenced this issue Jul 20, 2019
* 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.
3F added a commit that referenced this issue Jan 29, 2020
* 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: 3F/DllExport#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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant