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

XProjectEnv base, MSBuild Properties helpers, and other relevant changes due to integration with vsSolutionBuildEvent #17

Merged
merged 4 commits into from
Aug 4, 2019

Commits on Jul 16, 2019

  1. Introduces XProjectEnv (spitted IsolatedEnv as the base but without I…

    …Disposable)
    
    + Also adds an regular MSBuild Properties and other related changes for convenient work with this properties like extension method GetFileProperties, AddOrUpdate etc.
    
    Part of 3F/vsSolutionBuildEvent#53
    WIP
    3F committed Jul 16, 2019
    Configuration menu
    Copy the full SHA
    684cdb4 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2019

  1. Configuration menu
    Copy the full SHA
    4c9e2f6 View commit details
    Browse the repository at this point in the history
  2. IXProjectEnv improvements, fixes, and other relevant changes due to v…

    …sSolutionBuildEvent:
    
    3F/vsSolutionBuildEvent#53
    #17
    
    ## IConfPlatform changes:
    
    +`bool IsEqualByRule(string config, string platform, bool icase = false);`
    
        Checking an config/platform by using {Rule} instance.
    
    ## IXProjectEnv changes:
    
    +`IXProject XProjectByFile(...);`
    
        Find project by full path to file.
    
    +`IEnumerable<IXProject> Assign(IEnumerable<Project> projects = null);`
    
        Assign an existing `Microsoft.Build.Evaluation.Project` instances for local collection.
    
    +`IXProject AddOrGet(Project project);`
    
        Adds `Microsoft.Build.Evaluation.Project` instance into IXProject collection if it does not exist.
    
    +`ProjectItemCfg ExtractItemCfg(Project project);`
    
        Prepares data from `Microsoft.Build.Evaluation.Project` instance.
    
    +`void UnloadAll(bool throwIfErr = true);`
    
        Unloads all evaluated projects at current time.
    
    +`bool Unload(IXProject xp);`
    
        Unloads specified project.
    
    +`IEnumerable<Project> ValidProjects`
    
        List of valid projects such as something except `.user` but contains FirstChild / LastChild XML node.
    
    ## ISlnResult changes:
    
    +`string SolutionFile`
    
        Full path to an solution file.
    
    ## New extension methods:
    
    ```
    +TVal GetOrDefault<TKey, TVal>(this IDictionary<TKey, TVal> data, TKey key, TVal def)
    +bool IsEqual(this Project a, Project b)
    +string GetSolutionDir(this Project eProject)
    +string GetProjectRelativePath(this Project eProject)
    +string GetConfig(this Project eProject)
    +string GetPlatform(this Project eProject)
    +string GetSolutionExt(this Project eProject)
    ```
    
    ## Other
    
    * Removed pGuid checking from `IXProjectEnv.GetOrLoadProject()`
    * Added `FileExt` type for work with `ProjectType` via its file only.
    3F committed Jul 29, 2019
    Configuration menu
    Copy the full SHA
    0b5323b View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2019

  1. Fixed unloading projects for IXProjectEnv.Unload() methods

    also added method extensions:
    
    * `bool Remove<T>(this IList<T> src, T elem, Func<T, T, bool> comparer)`
    * `bool IsLimEqual(this IXProject x, IXProject prj)`
    
    and added .metaproj filter for an `IXProjectEnv.ValidProjects` property
    3F committed Aug 4, 2019
    Configuration menu
    Copy the full SHA
    855833a View commit details
    Browse the repository at this point in the history