MvsSln Common context - any type or type by default 'build' action 'rebuild' action 'clean' action 'build' action for selection 'rebuild' action for selection 'clean' action for selection 'build' action for project 'rebuild' action for project 'clean' action for project 'build' action for project 'rebuild' action for project 'clean' action for project Header information. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. List of solution folders. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. List of solution folders. Unspecified value for handler. Default indent. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. Gets unique id of listener. Solution configurations with platforms. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. Solution configurations with platforms. Project configurations with platforms. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. Project configurations with platforms. All found projects in solution. Solution Project Dependencies. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. List of projects in solution. Solution Project Dependencies. To extract prepared raw-data. Any object data which is ready for this IObjHandler. Final part of sln data. ... Format Version 12.00 # Visual Studio 15 ... # Visual Studio 2010 ... VisualStudioVersion = 15.0.26730.15 MinimumVisualStudioVersion = 10.0.40219.1 Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. TODO: review Used encoding for all data. Prepared solution data. Unspecified storage of the user scope. Reads a line of characters from stream. Reads a line of characters from stream with tracking. Resets stream and its related data. Tracking for line. Specific handler if used, or null as an unspecified. Transact tracking for line. Specific handler if used, or null as an unspecified. Transact tracking for line. Provides requested section. Specific handler if used, or null as an unspecified. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. Used encoding for all data. Prepared solution data. Unspecified storage of the user scope. Reads a line of characters from stream. Reads a line of characters from stream with tracking. Resets stream and its related data. Non-Transact tracking for line. Specific handler if used, or null as an unspecified. Transact tracking for line. Specific handler if used, or null as an unspecified. Transact tracking for line. Provides requested section. Specific handler if used, or null as an unspecified. Project Build Order from .sln file. Please note: initially it was part of https://github.com/3F/vsSolutionBuildEvent Direct order of identifiers. Map of projects. List of project Guids. In direct order of definitions with considering of ProjectDependencies. Projects and their dependencies. List of projects by Guid. Get first project from defined list. Get last project from defined list. Get first project in Project Build Order. Get last project in Project Build Order. Get project by Guid string. Identifier of project. Action with incoming line. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. The logic before processing file. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. The logic after processing file. Completeness of implementation. Aggregates additional handlers that will process same line. Action with incoming line. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. The logic before processing file. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. The logic after processing file. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. Completeness of implementation. Aggregates additional handlers that will process same line. Action with incoming line. Gets unique id of listener. The logic before processing file. The logic after processing file. Initialize data from raw line. Path to solution directory. Completeness of implementation. Aggregates additional handlers that will process same line. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. Checks the readiness to process data. True value if it's ready at current time. Condition for line to continue processing. true value to continue. New position in stream. Received line. true if it was processed by current handler, otherwise it means ignoring. List of project Guids. In direct order of definitions with considering of ProjectDependencies. List of projects by Guid. Projects and their dependencies. Solution configurations with platforms. Project configurations with platforms. All found projects in solution. List of solution folders. Updates instance of the Solution Project Dependencies. Updates header info. Information about folder section. Available items for this folder. Information about folder. List of items for this folder. Contains handler which is ready to process this section, or already processes. Known line number to this section. Raw data from stream. To ignore this from other sections. User's mixed object for anything. To update handler which is ready to process this section. New handler. Clone data from this section into new ISection instance. Contains handler which is ready to process this section, or already processes. Known line number to this section. Raw data from stream. To ignore this from other sections. User's mixed object for anything. To update handler which is ready to process this section. New handler. Clone data from this section into new ISection instance. Rules of platform names. details: https://github.com/3F/vsSolutionBuildEvent/issues/14 + MS Connect Issue #503935 Platform name. Rules of configuration names. Configuration name. Project Guid. Existence of `.Build.0` to activate project for build: {A7BF1F9C-F18D-423E-9354-859DC3CFAFD4}.CI_Release|Any CPU.Build.0 = Release|Any CPU Link to solution configuration. The custom rule of the Configuration and Platform names. To use virtual `Sensitivity` method to compare objects. Basic item of configuration and platform. The custom rule of the Configuration and Platform names. To use virtual `Sensitivity` method in comparing objects. Compatible format: 'configname'|'platformname' http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivscfg.get_displayname.aspx Access to Solution data. List of all evaluated projects at current time with unique configuration for each instance. List of evaluated projects that filtered by Guid. Access to GlobalProjectCollection Find project by Guid. Guid of project. Specific configuration. Find project by Guid. Guid of project. Find projects by name. ProjectName. Specific configuration. Find projects by name. ProjectName. Get or firstly load into collection the project. Use default configuration. Specific project. Get or firstly load into collection the project. Specific project. Configuration of project to load. Get or firstly load into collection the project. Specific project. Get project properties from solution properties. Solution properties. Load available projects via configurations. It will be added without unloading of previous. Specific list or null value to load all available. Loaded projects. Load the only one configuration for each available project. Loaded projects. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to Value cannot be null or empty.. data without whitespace characters. Use it for additional work with project references and it's dependencies in ISlnPDManager manner. List of ProjectReferences by project Guid. Parent data of the solution ProjectDependencies that initialized this object. Access to XProjects. Get ProjectReferences by project Guid. Identifier of project. All found ProjectReferences. Parent data. List of evaluated projects to consider of dependencies. Available writers to process sections. To write all not ignored sections with rules from handlers. To write a single section with rules from handlers. Destination file. Should contain writers by specific types of readers. Destination file. Should contain writers by specific types of readers. Use specific encoding. Should contain writers by specific types of readers. Aggregates links to ProjectItem and its configurations. Rules of platform names. details: https://github.com/3F/vsSolutionBuildEvent/issues/14 + MS Connect Issue #503935 Platform name. Rules of configuration names. Configuration name. Access to project instance of Microsoft.Build.Evaluation. ProjectItem and its configurations. Access to solution data if this was initialized with its context. Provides unique identifier for project (not instance). The Guid of this project. The ProjectName of this project. Gets the root directory for this project. Gets the full path to the project source file. Access to global properties of project. Saves the project to the file system, if modified. Saves the project to the file system, if modified or if the path to the project source code changes, using the given character encoding. Destination path of the the project source code. To add 'Import' element. Target project. To check existence of target via 'Condition' attr. Optional 'Label' attr. true value if target has been added. To add 'import' element. Target project. Use 'Condition' attr. Can be null to avoid this attr. Optional 'Label' attr. true value if target has been added. To add 'import' element. Specified 'Import' element to add. true value if it has been added. To add 'import' elements inside ImportGroup. Will stop the adding if some of this cannot be added. List of specified 'Import' elements to add. Optional 'Condition' attr for group. Optional 'Label' attr for group. true value only if all 'import' elements has been successfully added. False if one of this is failed. To remove the first found 'Import' element. Target project. true value if it has been found and removed. To remove 'Import' element. Specified 'Import' element to remove. Holds empty group if it was inside. true value if it has been removed. Retrieve the first found 'Import' element if it exists. Optional filter by the Project attribute. Retrieve the first found 'Import' element if it exists. Filter by the Project attribute. Case-insensitive variant. Can be null to skip comparing. Filter by the Label attribute. Case-insensitive variant. Can be null to skip comparing. Equals() if true or EndsWith() function for comparing Project attribute. Retrieve the all found 'Import' elements. Optional filter by the Project attribute. Retrieve the all found 'Import' elements. Filter by the Project attribute. Case-insensitive variant. Can be null to skip comparing. Filter by the Label attribute. Case-insensitive variant. Can be null to skip comparing. Equals() if true or EndsWith() function for comparing Project attribute. The property in this project that has the specified name. The name of the property. If true, will return default value for any special and imported properties type. null if no property of that name and scope exists. Sets or adds a property with the given name and unevaluated value to the project. The name of the property. The new unevaluated value of the property. Sets or adds a property with the given name and unevaluated value to the project. The name of the property. The new unevaluated value of the property. Use 'Condition' attr. Sets or adds properties inside group. To remove group, just delete all properties inside. List of properties name=unevaluatedValue. Optional 'Condition' attr for group. Sets or adds properties inside group. To remove group, just delete all properties inside. List of properties via PropertyItem. Optional 'Condition' attr for group. Removes an property from the project. The name of the property. if true, will reevaluate data of project after removing. Removes an property from the project. if true, will reevaluate data of project after removing. All properties in this project. Reevaluates data of project if necessary. For example, if project contains 2 or more same properties by name: * After RemoveProperty(...) the second property still will be unavailable for GetProperty(...) because its node does not contain this at all. Use this to update nodes. Makes relative path from this project. Adds 'Reference' item. Include attribute. Adds 'Reference' item. Assembly for adding. Meta 'Private' - i.e. Copy Local. Meta 'EmbedInteropTypes'. Meta 'SpecificVersion'. Adds 'Reference' item. Full path to binary file. Meta 'Private' - i.e. Copy Local. Meta 'EmbedInteropTypes'. Meta 'SpecificVersion'. Adds 'Reference' item. Include attribute. Meta 'HintPath'. Meta 'Private' - i.e. Copy Local. Meta 'EmbedInteropTypes'. Meta 'SpecificVersion'. Adds 'ProjectReference' item. Information about project. Adds 'ProjectReference' item. Path to project file. The Guid of project. The name of project. Make relative path. Adds an item to the project. The item type. The Include attribute of this item. Optional metadata list. true if item has been added. Retrieve all available items from projects. The item type or null value to get all. The unevaluated value of the Include attribute or null value to get all. Retrieve first item by type. The item type. The unevaluated value of the Include attribute. Get all available 'Reference' items. The Include attribute to be found or null value to get all. Get all available 'ProjectReference' items. The Include attribute to be found or null value to get all. Get first available 'Reference' item. The Include attribute to be found. Get first available 'ProjectReference' item. The Include attribute to be found. Remove first item from project by type. The item type. The unevaluated value of the Include attribute. Remove selected item from project. Remove 'Reference' item from project. The unevaluated value of the Include attribute. Remove 'ProjectReference' item from project. The unevaluated value of the Include attribute. Access to project instance of Microsoft.Build.Evaluation. ProjectItem and its configurations. Access to solution data if this was initialized with its context. Provides unique identifier for project (not instance). The Guid of this project. The ProjectName of this project. Gets the root directory for this project. Gets the full path to the project source file. Access to global properties of project. The base path for MakeRelativePath() functions etc. Saves the project to the file system, if modified. Saves the project to the file system, if modified or if the path to the project source code changes, using the given character encoding. Destination path of the the project source code. To add 'Import' element. Target project. To check existence of target via 'Condition' attr. Optional 'Label' attr. true value if target has been added. To add 'import' element. Target project. Use 'Condition' attr. Can be null to avoid this attr. Optional 'Label' attr. true value if target has been added. To add 'import' element. Specified 'Import' element to add. true value if it has been added. To add 'import' elements inside ImportGroup. Will stop the adding if some of this cannot be added. List of specified 'Import' elements to add. Optional 'Condition' attr for group. Optional 'Label' attr for group. true value only if all 'import' elements has been successfully added. False if one of this is failed. To remove the first found 'Import' element. Target project. true value if it has been found and removed. To remove 'Import' element. Specified 'Import' element to remove. Holds empty group if it was inside. true value if it has been removed. Retrieve the first found 'Import' element if it exists. Optional filter by the Project attribute. Retrieve the first found 'Import' element if it exists. Filter by the Project attribute. Case-insensitive variant. Can be null to skip comparing. Filter by the Label attribute. Case-insensitive variant. Can be null to skip comparing. Equals() if true or EndsWith() function for comparing Project attribute. Retrieve the all found 'Import' elements. Optional filter by the Project attribute. Retrieve the all found 'Import' elements. Filter by the Project attribute. Case-insensitive variant. Can be null to skip comparing. Filter by the Label attribute. Case-insensitive variant. Can be null to skip comparing. Equals() if true or EndsWith() function for comparing Project attribute. The property in this project that has the specified name. The name of the property. If true, will return default value for any special and imported properties type. null if no property of that name and scope exists. Sets or adds a property with the given name and unevaluated value to the project. The name of the property. The new unevaluated value of the property. Sets or adds a property with the given name and unevaluated value to the project. The name of the property. The new unevaluated value of the property. Use 'Condition' attr. Sets or adds properties inside group. To remove group, just delete all properties inside. List of properties name=unevaluatedValue. Optional 'Condition' attr for group. Sets or adds properties inside group. To remove group, just delete all properties inside. List of properties via PropertyItem. Optional 'Condition' attr for group. Removes an property from the project. Local Scope only. The name of the property. if true, will reevaluate data of project after removing. Removes an property from the project. if true, will reevaluate data of project after removing All properties in this project. Reevaluates data of project if necessary. For example, if project contains 2 or more same properties by name: * After RemoveProperty(...) the second property still will be unavailable for GetProperty(...) because its node does not contain this at all. Use this to update nodes. Makes relative path from this project. Adds 'Reference' item. Include attribute. Adds 'Reference' item. Assembly for adding. Meta 'Private' - i.e. Copy Local. Meta 'EmbedInteropTypes'. Meta 'SpecificVersion'. Adds 'Reference' item. Full path to binary file. Meta 'Private' - i.e. Copy Local. Meta 'EmbedInteropTypes'. Meta 'SpecificVersion'. Adds 'Reference' item. Include attribute. Meta 'HintPath'. Meta 'Private' - i.e. Copy Local. Meta 'EmbedInteropTypes'. Meta 'SpecificVersion'. Adds 'ProjectReference' item. Information about project. Adds 'ProjectReference' item. Path to project file. The Guid of project. The name of project. Make relative path. Adds an item to the project. The item type. The Include attribute of this item. Optional metadata list. true if item has been added. Retrieve all available items from projects. The item type or null value to get all. The unevaluated value of the Include attribute or null value to get all. Retrieve first item by type. The item type. The unevaluated value of the Include attribute. Get all available 'Reference' items. The Include attribute to be found or null value to get all. Get all available 'ProjectReference' items. The Include attribute to be found or null value to get all. Get first available 'Reference' item. The Include attribute to be found. Get first available 'ProjectReference' item. The Include attribute to be found. Remove first item from project by type. The item type. The unevaluated value of the Include attribute. Remove selected item from project. Remove 'Reference' item from project. The unevaluated value of the Include attribute. Remove 'ProjectReference' item from project. The unevaluated value of the Include attribute. Isolated environment. Please note: initially it was part of https://github.com/3F/vsSolutionBuildEvent Default value for all undefined properties. Solution properties. Dictionary of raw xml projects by Guid. Will be used if projects cannot be accessed from filesystem. Access to Solution data. List of all evaluated projects at current time with unique configuration for each instance. List of evaluated projects that filtered by Guid. Access to GlobalProjectCollection Find project by Guid. Guid of project. Specific configuration. Find project by Guid. Guid of project. Find projects by name. ProjectName. Specific configuration. Find projects by name. ProjectName. Get or firstly load into collection the project. Use default configuration. Specific project. Get or firstly load into collection the project. Specific project. Configuration of project to load. Get or firstly load into collection the project. Specific project. Get project properties from solution properties. Solution properties. Load available projects via configurations. It will be added without unloading of previous. Specific list or null value to load all available. Loaded projects. Load the only one configuration for each available project. Loaded projects. Prepared data from solution parser. Optional dictionary of raw xml projects by Guid. List of loaded. Defines required properties for project via IConfPlatform. Specific configuration. Common properties. Get first project from defined list. Get last project from defined list. Get first project in Project Build Order. Get last project in Project Build Order. Get project by Guid string. Identifier of project. Available solution handlers. Dictionary of raw xml projects by Guid. Will be used if projects cannot be accessed from filesystem. To reset and register all default handlers. Parse of selected .sln file. Solution file Allowed type of operations. To parse data from used stream. Allowed type of operations. Solution Folder. Pattern of 'Project(' line - based on crackProjectLine from Microsoft.Build.BuildEngine.Shared.SolutionParser Pattern of 'ProjectSection(ProjectDependencies)' lines - based on crackPropertyLine from Microsoft.Build.BuildEngine.Shared.SolutionParser Full path to root solution directory. Processed type for result. Header information. Solution configurations with platforms. Project configurations with platforms. Alias of the relation of solution configuration to project configurations. All found projects in solution. Alias for ProjectItems and its configurations. List of solution folders. Default Configuration and Platform for current solution. All available global properties for solution. Solution Project Dependencies. Environment for current data. Contains map of all found (known/unknown) solution data. This value is never null. Full path to root solution directory. Processed type for result. Header information. Solution configurations with platforms. Project configurations with platforms. Alias of the relation of solution configuration to project configurations. All found projects in solution. Alias for ProjectItems and its configurations. List of solution folders. Default Configuration and Platform for current solution. All available global properties for solution. Solution Project Dependencies. See also `ProjectReferences` class if you need additional work with project references. Environment for current data. Contains map of all found (known/unknown) solution data. This value is never null. Solution configurations with platforms. Project configurations with platforms. All found projects in solution. List of solution folders. Updates instance of the Solution Project Dependencies. Updates header info. Gets unique id of listener. Number of elements contained in the thread-safe collection. Gets the object used to synchronize access to the thread-safe collection. Adds an listener to thread-safe collection. Removes specified listener from the collection. Reset all collection. Determines whether the collection contains an listener. Checks existence of listener by Guid. Get listener by specific id. null if not found. Project Configuration Project Guid. Existence of `.Build.0` to activate project for build: {A7BF1F9C-F18D-423E-9354-859DC3CFAFD4}.CI_Release|Any CPU.Build.0 = Release|Any CPU Link to solution configuration. Solution Configuration Parser for basic elements from .sln files. Please note: initially it was part of https://github.com/3F/vsSolutionBuildEvent The name of file if used stream from memory. To use specific Encoding by default for some operations with data. Available solution handlers. Dictionary of raw xml projects by Guid. Will be used if projects cannot be accessed from filesystem. To reset and register all default handlers. Parse of selected .sln file. Solution file Allowed type of operations. To parse data from used stream. Allowed type of operations. To register and activate all handlers by default if true. TODO: another way to manage aliases for data. Properties of project in solution file Project GUID Project type GUID Project name Relative path to project Full path to project Evaluated project type. Evaluate project type via Guid. Project type Guid. Initialize data from raw line. Path to solution directory. Thread-safe container of listeners. IListener based type. justification: A common using of SynchSubscribers should be as an only sequential accessing to all elements at once - that is O(1). And most important - it's contiguous storage in order of adding of elements, because we need to save priority by listeners. But for any single accessing it should be O(n), thus we also use O(1) accessor below to improve performance of the List type. A shallow copy of listeners which has O(1) for any single accessing to elements. This is not an ordered, thread-safe container, and unfortunately we can't use this as primarily container (read justification above). Number of elements contained in the thread-safe collection. Gets the object used to synchronize access to the thread-safe collection. Adds an listener to thread-safe collection. Removes specified listener from the collection. Reset all collection. Determines whether the collection contains an listener. Checks existence of listener by Guid. Get listener by specific id. null if not found. Wrapper of dynamic EnvDTE.Project. Gets the full path and name of the EnvDTE.Project object's file. The references in the project. Dynamic access to EnvDTE.Project. To check existence of references by name and PublicKeyToken. https://msdn.microsoft.com/en-us/library/vslangproj.reference.aspx Saves the project or project item. Optional name in which to save the project or project item. Helper for access to EnvDTE.Project without direct reference. Environment with initialized xprojects. EnvDTE.Project EnvDTE.Projects wrapped by DProject. https://msdn.microsoft.com/en-us/library/envdte.projects.aspx Access to each IXProject and saving data via EnvDTE. Optional meta-library file name without extension to filter. PublicKeyToken of meta-library if used. To update property value for all available projects. The name of the property. Value of the property. Optional meta-library file name without extension to filter. PublicKeyToken of meta-library if used. Foreach in Linq manner. The action that should be executed for each item. Gets Guid from hash by any string. String for calculating. Gets part of string before specific symbols. Separators. Left part of string before symbols, or null value if no any symbols are found. Formatting of the path to directory. Check if this is a directory. Makes relative path from absolute. Gets stream from string. Specific encoding or null value to use UTF8 by default. Execute action separately from result. The type of value that should be returned. Unspecified object. Any action that should be executed. Same value from selected object as T type. Execute action separately from result. Alias to `E<object>()` Unspecified object. Any action that should be executed. Same value from selected object. The Project attribute. The Condition attribute. The Label value. Access to parent element. Link to parent container. The item type. The unevaluated value of the Include attribute. The evaluated value of the Include attribute. True if this item originates from an imported file. All the metadata for this item by name. The name of the metadata. The evaluated metadata value. The unevaluated metadata value. Link to parent Microsoft.Build.Evaluation.ProjectItem. Link to parent container. Try to extract assembly information, e.g.: Include="DllExport, Version=1.5.1.35977, Culture=neutral, PublicKeyToken=8337224c9ad9e356, processorArchitecture=MSIL" Include="System.Core" ... The name of the property. The evaluated property value, which is never null. The unevaluated property value. 'Condition' attr if defined. True if the property originated from an environment variable. True if the property is a global property. True if the property is a reserved property, for example 'MSBuildProjectFile'. True if the property originates from an imported file and not from an environment variable, a global property, or a reserved property. True if the property has been defined locally by user via available constructor. Link to Microsoft.Build.Evaluation.ProjectProperty. Link to parent container. The name of property. Unevaluated value. Optional 'Condition' attr. When message has been received. To send new message. To send new message. To send new message. To send new message with default sender as typeof(T). It useful for static methods etc. To send new message with default sender as typeof(T). It useful for static methods etc. To send new message with default sender as typeof(T). It useful for static methods etc. A simple retranslator. Use the NLog etc. When message has been received. Static alias to Received. Static alias to `send(object sender, Message msg)` Static alias to `send(object sender, string msg)` Static alias to `send(object sender, string msg, Message.Level type)` To send new message with default sender as typeof(T). It useful for static methods etc. To send new message with default sender as typeof(T). It useful for static methods etc. To send new message with default sender as typeof(T). It useful for static methods etc. To send new message. To send new message. To send new message. To send new message with default sender as typeof(T). It useful for static methods etc. To send new message with default sender as typeof(T). It useful for static methods etc. To send new message with default sender as typeof(T). It useful for static methods etc. Thread-safe getting the instance of the Sender class All supported data. All found projects from solution. Solution configurations with platforms. Project configurations with platforms. Project Build Order from .sln file. To prepare environment without loading projects. To load all possible default data. To load only minimal default data. For example, the only one configuration for each project. To prepare environment with loaded projects by default. To prepare environment with minimal loaded projects. The only one configuration for each project. Creates map when processing sln data. ProjectSection - SolutionItems Header information. Wrapper of the default solution parser. Parsed solution data. Solution file Allowed type of operations. Allowed type of operations. Allowed type of operations. Raw data inside string. Encoding of raw data. Allowed type of operations. Raw data inside string. Allowed type of operations. Solution raw data. Dictionary of raw xml projects by Guid.