Skip to content

Commit

Permalink
Public release of MvsSln - v2.2
Browse files Browse the repository at this point in the history
* FIXED: Fixed possible error when loading all found projects:
        'An equivalent project is already present in the project collection, ...'

* NEW: Implemented R/W Handlers for `NestedProjects` section. Issue #7

* NEW: Implemented new R/W handlers for `ExtensibilityGlobals` section.
        Use `ExtItems = 0x0400` flag to activate it.

* NEW: Implemented native object comparison for ProjectItem, SolutionFolder, and RawText.
        ```
        ~
        if(new ProjectItem(...) == new ProjectItem(...)) { ... }
        if(new SolutionFolder(...) == new SolutionFolder(...)) { ... }
        if(new RawText(...) == new RawText(...)) { ... }
        if(new ConfigItem(...) == new ConfigItem(...)) { ... }
        if((RawText)"data" == (RawText)"data") { ... }
        ```

* NEW: New constructors for `SolutionFolder`. Issue #8:
    ```
    +SolutionFolder(string fGuid, string name, IEnumerable<RawText> items)
    +SolutionFolder(Guid fGuid, string name)
    +SolutionFolder(string fGuid, string name, SolutionFolder parent, params RawText[] items)
    +SolutionFolder(string fGuid, string name, SolutionFolder? parent, IEnumerable<RawText> items)
    +SolutionFolder(string name, params RawText[] items)
    +SolutionFolder(string name, IEnumerable<RawText> items)
    +SolutionFolder(string name, SolutionFolder parent, params RawText[] items)
    +SolutionFolder(string name, SolutionFolder parent, IEnumerable<RawText> items)
    +SolutionFolder(ProjectItem pItem, params RawText[] def)
    +SolutionFolder(SolutionFolder folder)
    ```

* NEW: New constructors for `ProjectItem` (part of Issue #8):
    ```
    +ProjectItem(string name, ProjectType pType, SolutionFolder? parent = null)
    +ProjectItem(string name, ProjectType pType, string path, SolutionFolder? parent = null, string slnDir = null)
    +ProjectItem(string pGuid, string name, ProjectType pType, SolutionFolder? parent = null)
    +ProjectItem(string pGuid, string name, ProjectType pType, string path, SolutionFolder? parent = null, string slnDir = null)
    +ProjectItem(string pGuid, string name, string path, string pType, string slnDir = null)
    +ProjectItem(ProjectItem prj)
    ```

* CHANGED: `ProjectItem.ProjectTypeBy(string guid)` marked as [Obsolete] and can be removed in new versions later.
            You can use new methods when you need:
            * `Guids.ProjectTypeBy(string guid)`
            * `Guids.GuidBy(ProjectType type)`

* CHANGED: Updated package tools hMSBuild 2.0 & GetNuTool 1.7.
           Release notes:
            * https://github.com/3F/GetNuTool/releases/tag/v1.7
            * https://github.com/3F/hMSBuild/releases/tag/v2.0
  • Loading branch information
3F committed Apr 7, 2019
1 parent 2767d84 commit c9db340
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.0
2.2.0
10 changes: 5 additions & 5 deletions MvsSln/MvsSlnVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ public struct MvsSlnVersion
{
public static readonly Version number = new Version(S_NUM_REV);

public const string S_NUM = "2.1.0";
public const string S_REV = "23904";
public const string S_NUM = "2.2.0";
public const string S_REV = "0";

public const string S_NUM_REV = S_NUM + "." + S_REV;

public const string BRANCH_SHA1 = "a84f0f2";
public const string BRANCH_NAME = "master";
public const string BRANCH_REVC = "37";
public const string BRANCH_SHA1 = "-";
public const string BRANCH_NAME = "-";
public const string BRANCH_REVC = "-";

internal const string S_INFO = S_NUM_REV + " [ " + BRANCH_SHA1 + " ]";
internal const string S_INFO_FULL = S_INFO + " /'" + BRANCH_NAME + "':" + BRANCH_REVC;
Expand Down
55 changes: 55 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,61 @@
MvsSln :: https://github.com/3F/MvsSln
_ _ _ _

[v2.2] 2019.04.08

* FIXED: Fixed possible error when loading all found projects:
'An equivalent project is already present in the project collection, ...'

* NEW: Implemented R/W Handlers for `NestedProjects` section. Issue #7

* NEW: Implemented new R/W handlers for `ExtensibilityGlobals` section.
Use `ExtItems = 0x0400` flag to activate it.

* NEW: Implemented native object comparison for ProjectItem, SolutionFolder, and RawText.
```
~
if(new ProjectItem(...) == new ProjectItem(...)) { ... }
if(new SolutionFolder(...) == new SolutionFolder(...)) { ... }
if(new RawText(...) == new RawText(...)) { ... }
if(new ConfigItem(...) == new ConfigItem(...)) { ... }
if((RawText)"data" == (RawText)"data") { ... }
```

* NEW: New constructors for `SolutionFolder`. Issue #8:
```
+SolutionFolder(string fGuid, string name, IEnumerable<RawText> items)
+SolutionFolder(Guid fGuid, string name)
+SolutionFolder(string fGuid, string name, SolutionFolder parent, params RawText[] items)
+SolutionFolder(string fGuid, string name, SolutionFolder? parent, IEnumerable<RawText> items)
+SolutionFolder(string name, params RawText[] items)
+SolutionFolder(string name, IEnumerable<RawText> items)
+SolutionFolder(string name, SolutionFolder parent, params RawText[] items)
+SolutionFolder(string name, SolutionFolder parent, IEnumerable<RawText> items)
+SolutionFolder(ProjectItem pItem, params RawText[] def)
+SolutionFolder(SolutionFolder folder)
```

* NEW: New constructors for `ProjectItem` (part of Issue #8):
```
+ProjectItem(string name, ProjectType pType, SolutionFolder? parent = null)
+ProjectItem(string name, ProjectType pType, string path, SolutionFolder? parent = null, string slnDir = null)
+ProjectItem(string pGuid, string name, ProjectType pType, SolutionFolder? parent = null)
+ProjectItem(string pGuid, string name, ProjectType pType, string path, SolutionFolder? parent = null, string slnDir = null)
+ProjectItem(string pGuid, string name, string path, string pType, string slnDir = null)
+ProjectItem(ProjectItem prj)
```

* CHANGED: `ProjectItem.ProjectTypeBy(string guid)` marked as [Obsolete] and can be removed in new versions later.
You can use new methods when you need:
* `Guids.ProjectTypeBy(string guid)`
* `Guids.GuidBy(ProjectType type)`

* CHANGED: Updated package tools hMSBuild 2.0 & GetNuTool 1.7.
Release notes:
* https://github.com/3F/GetNuTool/releases/tag/v1.7
* https://github.com/3F/hMSBuild/releases/tag/v2.0


[v2.1] 2018.08.05

* FIXED: Fixed bug 'The node is not parented by this object'
Expand Down
23 changes: 15 additions & 8 deletions tools/MvsSln.nuspec
Original file line number Diff line number Diff line change
@@ -1,27 +1,34 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>MvsSln</id>
<version>2.1.0</version>
<version>2.2.0</version>
<title>[ MvsSln ] VisualStudio .sln files and its projects</title>
<authors>github.com/3F/MvsSln</authors>
<license type="file">License.txt</license>
<owners>reg</owners>
<licenseUrl>https://github.com/3F/MvsSln/blob/master/License.txt</licenseUrl>
<licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>
<projectUrl>https://github.com/3F/MvsSln</projectUrl>
<repository type="git" url="https://github.com/3F/MvsSln" />
<iconUrl>https://raw.githubusercontent.com/3F/MvsSln/master/MvsSln/Resources/MvsSln_v1_96px.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>

MvsSln provides complex support (sln parser, r/w handlers, ...) of the Visual Studio .sln files and its projects (.vcxproj, .csproj., ...).

It was part of the https://github.com/3F/vsSolutionBuildEvent projects, but now it extracted into the new specially for [DllExport](https://github.com/3F/DllExport) and for others.
Even if you just need the basic access to information or more complex work through our readers and writers.

* You can also easily control all your projects data (Reference, ProjectReference, Properties, Import sections, ...).
* Or even create your custom sln parsing of anything in a few steps.

It was part of the https://github.com/3F/vsSolutionBuildEvent projects, but now it extracted into the new (specially for https://github.com/3F/DllExport and for others).
_ _ _ _ _ _
Source code and all details here: https://github.com/3F/MvsSln

~~~~~~~~
Get it via GetNuTool:
==========================================
gnt /p:ngpackages="MvsSln/2.1.0"
gnt /p:ngpackages="MvsSln/2.2.0"
==========================================
* https://github.com/3F/GetNuTool

Expand All @@ -30,9 +37,9 @@

</description>
<summary>Complex support (sln parser, r/w handlers, ...) of the Visual Studio .sln files and its projects (.vcxproj, .csproj, ...) - https://github.com/3F/MvsSln</summary>
<tags>sln visualstudio sln-parser projects sln-files csproj vcxproj visual-studio VS2017 VS2015 VS2013 VS2010 GetNuTool hMSBuild parser MvsSln</tags>
<releaseNotes></releaseNotes>
<copyright>Copyright (c) 2013-2018 Denis Kuzmin [[email protected]] :: github.com/3F </copyright>
<tags>sln visualstudio parser sln-parser projects sln-files csproj vcxproj visual-studio VS2019 VS2017 VS2015 VS2013 VS2012 VS2010 msbuild GetNuTool hMSBuild MvsSln</tags>
<releaseNotes> changelog: https://github.com/3F/MvsSln/blob/master/changelog.txt </releaseNotes>
<copyright>Copyright (c) 2013-2019 Denis Kuzmin [[email protected]] GitHub/3F </copyright>
<references>
<reference file="MvsSln.dll" />
</references>
Expand Down

0 comments on commit c9db340

Please sign in to comment.