Skip to content

Commit

Permalink
MvsSln 2.6. Public release.
Browse files Browse the repository at this point in the history
* FIXED: Fixed CalculateHashCode() Extension.
         Internally affects many objects due to broken GetHashCode().

* FIXED: Fixed SlnItems.ProjectDependenciesXml when empty input:
         Report #25 (comment)

* NEW: packages.config support PR #30. Related issues #27, #28.
       To activate it, use the following flags:
        * PackagesConfig, PackagesConfigSolution, PackagesConfigLegacy.

        For example,
        ```
        using Sln l = new("Input.sln", SlnItems.AllNoLoad | SlnItems.PackagesConfig);

        IPackageInfo found = l.Result.PackagesConfigs
                                        .SelectMany(s => s.Packages)
                                        .FirstOrDefault(p => p.Id.StartsWith("Microsoft."));
        // found.MetaTFM ...

        Version v = l.Result.PackagesConfigs.First().GetPackage("LX4Cnh")?.VersionParsed;
        ```
          Including GetNuTool compatible packages, format:
          https://github.com/3F/GetNuTool#format-of-packages-list

* NEW: Added HasValue and HasNothing properties in PropertyItem.

* NEW: Added SlnItems.AllMinimal and SlnItems.AllNoLoad in addition to SlnItems.All.

* NEW: Added IXProject.GetPackageReferences().

* CHANGED: ConfigItem.Format() marked as obsolete.
           Use `ToString()` and `IConfPlatform.Formatted` instead.
  • Loading branch information
3F committed Aug 23, 2021
1 parent a7fdda1 commit f10c50c
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .version
@@ -1 +1 @@
2.5.3
2.6.0
2 changes: 1 addition & 1 deletion MvsSln/MvsSln.csproj
Expand Up @@ -3,7 +3,7 @@
<Import Project="..\common.props" />

<PropertyGroup>
<Version>2.5.3</Version>
<Version>2.6.0</Version>
<BuildInfoVSSBE></BuildInfoVSSBE>
</PropertyGroup>

Expand Down
2 changes: 1 addition & 1 deletion MvsSln/MvsSlnVersion.cs
Expand Up @@ -8,7 +8,7 @@ public struct MvsSlnVersion
{
public static readonly Version number = new Version(S_NUM_REV);

public const string S_NUM = "2.5.3";
public const string S_NUM = "2.6.0";
public const string S_REV = "0";

public const string S_NUM_REV = S_NUM + "." + S_REV;
Expand Down
20 changes: 13 additions & 7 deletions Readme.md
Expand Up @@ -6,20 +6,26 @@ Customizable VisualStudio .sln parser, Complex support of the projects (.vcxproj
Copyright (c) 2013-2021 Denis Kuzmin <x-3F@outlook.com> github/3F
```

[ [ <sub>@</sub> ☕ ] ](https://3F.github.io/Donation/)
[ [ <sub>@</sub> ☕ ] ](https://3F.github.io/Donation/) [![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/MvsSln/blob/master/License.txt)

MvsSln contributors https://github.com/3F/MvsSln/graphs/contributors

We're waiting for your awesome contributions!

[![Build status](https://ci.appveyor.com/api/projects/status/6uunsds889rhkpo2/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/mvssln-fxjnf/branch/master)
[![release](https://img.shields.io/github/release/3F/MvsSln.svg)](https://github.com/3F/MvsSln/releases/latest)
[![NuGet package](https://img.shields.io/nuget/v/MvsSln.svg)](https://www.nuget.org/packages/MvsSln/)
[![Tests](https://img.shields.io/appveyor/tests/3Fs/mvssln-fxjnf/master.svg)](https://ci.appveyor.com/project/3Fs/mvssln-fxjnf/build/tests)
[![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/MvsSln/blob/master/License.txt)
<table><tr><td>

| GitHub Releases | Windows | Linux
|-----------------|---------|--------
| [![release](https://img.shields.io/github/release/3F/MvsSln.svg)](https://github.com/3F/MvsSln/releases/latest) | [![status](https://ci.appveyor.com/api/projects/status/6uunsds889rhkpo2/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/mvssln-fxjnf/branch/master) | [![status](https://ci.appveyor.com/api/projects/status/vdt3taxswrxo37tt/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/mvssln-2d2c2/branch/master)
| | [![NuGet package](https://img.shields.io/nuget/v/MvsSln.svg)](https://www.nuget.org/packages/MvsSln/)
| | [![Tests](https://img.shields.io/appveyor/tests/3Fs/mvssln-fxjnf/master.svg)](https://ci.appveyor.com/project/3Fs/mvssln-fxjnf/build/tests)

</td><td>

[![Build history](https://buildstats.info/appveyor/chart/3Fs/mvssln-fxjnf?buildCount=20&includeBuildsFromPullRequest=true&showStats=true)](https://ci.appveyor.com/project/3Fs/mvssln-fxjnf/history)

</td></tr></table>

## Why MvsSln ?

MvsSln provides the easiest way to complex work with Visual Studio .sln files and referenced projects (.vcxproj, .csproj., ...). Merge, Manage, Attach custom handlers and more. Because it's free, because it's open.
Expand Down Expand Up @@ -287,7 +293,7 @@ DBG_SDK10; DBG_SDK15; DCI_SDK10; DCI_SDK15; REL_SDK10; REL_SDK15; RCI_SDK10; RCI

Maximum **possible** configurations for each projects above should be calculated as 10 * 8 = 80, ie. 80 instances that *can be* loaded as each different project. `EnvWithProjects` will try load all available, but in fact, mostly 2 or more project-configuration can be related to the same 1 solution-configuration, therefore it can be just 30 or even 20 in reality, and so on.

However, **if you need** to work only with common data of specified project:
However, if you need to work only with common data of specified project:
* Just use any available configuration. That is, to load projects only with specific configuration, use for example `IEnvironment.LoadProjects`.

```csharp
Expand Down
36 changes: 36 additions & 0 deletions changelog.txt
Expand Up @@ -2,6 +2,42 @@
MvsSln - https://github.com/3F/MvsSln
- - - - - - - - - - - - - - - - - - -

[v2.6] 2021.08.23

* FIXED: Fixed CalculateHashCode() Extension.
Internally affects many objects due to broken GetHashCode().

* FIXED: Fixed SlnItems.ProjectDependenciesXml when empty input:
Report https://github.com/3F/MvsSln/issues/25#issuecomment-743840401

* NEW: packages.config support PR #30. Related issues #27, #28.
To activate it, use the following flags:
* PackagesConfig, PackagesConfigSolution, PackagesConfigLegacy.

For example,
```
using Sln l = new("Input.sln", SlnItems.AllNoLoad | SlnItems.PackagesConfig);

IPackageInfo found = l.Result.PackagesConfigs
.SelectMany(s => s.Packages)
.FirstOrDefault(p => p.Id.StartsWith("Microsoft."));
// found.MetaTFM ...

Version v = l.Result.PackagesConfigs.First().GetPackage("LX4Cnh")?.VersionParsed;
```
Including GetNuTool compatible packages, format:
https://github.com/3F/GetNuTool#format-of-packages-list

* NEW: Added HasValue and HasNothing properties in PropertyItem.

* NEW: Added SlnItems.AllMinimal and SlnItems.AllNoLoad in addition to SlnItems.All.

* NEW: Added IXProject.GetPackageReferences().

* CHANGED: ConfigItem.Format() marked as obsolete.
Use `ToString()` and `IConfPlatform.Formatted` instead.


[v2.5.3] 2020.07.23

* FIXED: Fixed XProjectEnv. Issue #29
Expand Down

0 comments on commit f10c50c

Please sign in to comment.