Export (0) Print
Expand All

Solution2 Interface

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Represents all projects and solution-wide properties in the integrated development environment (IDE).

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

[GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface Solution2 : _Solution

The Solution2 type exposes the following members.

  NameDescription
Public propertyAddInsGets an AddIns collection, which contains all currently available Add-ins associated with the solution.
Public propertyCountGets a value indicating the number of projects in the solution.
Public propertyDTEGets the top-level extensibility object.
Public propertyExtenderGets the requested Extender object if it is available for this object.
Public propertyExtenderCATIDGets the Extender category ID (CATID) for the object.
Public propertyExtenderNamesGets a list of available Extenders for the object.
Public propertyFileNameInfrastructure. Microsoft Internal Use Only.
Public propertyFullNameGets the full path and name of the object's file.
Public propertyGlobalsGets the Globals object that contains any variable values that may be saved in the solution (.sln) file, the project file, or the user's profile data.
Public propertyIsDirtyInfrastructure. Microsoft Internal Use Only.
Public propertyIsOpenGets a value which indicates whether a solution is open.
Public propertyParentGets the immediate parent object of a Solution2 object.
Public propertyProjectsGets a collection of the projects currently in the solution.
Public propertyPropertiesGets a collection of all properties that pertain to the Solution2 object.
Public propertySavedGets or sets a value indicating whether a solution has not been modified since last being saved or opened.
Public propertySolutionBuildGets the SolutionBuild object for the solution, which represents the root of the build automation model at the solution level.
Public propertyTemplatePathSuperseded by GetProjectTemplate.
Top

  NameDescription
Public methodAddFromFileAdds a project to the solution that is based on a project file already stored in the system.
Public methodAddFromTemplateCopies an existing project file, and any items or subdirectories it contains, to the specified location and adds it to the solution.
Public methodAddSolutionFolderAdds a solution folder to a ProjectItems collection.
Public methodCloseCloses the current solution.
Public methodCreateCreates an empty solution in the specified directory with the specified name.
Public methodFindProjectItemLocates an item in a project.
Public methodGetEnumeratorReturns an enumeration for items in a collection.
Public methodGetProjectItemTemplateReturns a path to the indicated project item template.
Public methodGetProjectTemplateReturns a path to the indicated project template.If a template has a RequiredFrameworkVersion element higher than 4.0, you should provide the version in the call so that the search for the template will find a match. For example, instead of calling GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"); call GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.
Public methodItemReturns an indexed member of a Projects collection.
Public methodOpenOpens a specified solution.
Public methodProjectItemsTemplatePathSuperseded by GetProjectItemTemplate.
Public methodRemoveRemoves the specified project from the solution.
Public methodSaveAsSaves the solution.
Top

This interface contains a collection of all projects in the current instance of the IDE and all solution-wide properties, such as build configurations. It contains a project element for every project, whether it is a wrapped project, a subproject, or a top-level project.

You can find the open solution by using the DTE.Solution property. To refer to virtual projects, such as MiscFiles or SolutionItems, use Solution.Item(EnvDTE.Constants.vsProjectKindMisc or Solution.Item(EnvDTE.Constants.vsProjectKindSolutionItems.

For information on how to run this add-in code, see How to: Compile and Run the Automation Object Model Code Examples.

The following code creates a new console application solution in the given path.

//you will need to add this reference to your project as well
using System.Windows.Forms;  

public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst,
 ref System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    SolutionExample((DTE2)_applicationObject);
}

public void SolutionExample(DTE2 dte)
{
    // This function creates a solution and adds a Visual C# Console
    // project to it.
    try{
        Solution2 soln = (Solution2)_applicationObject.Solution;
        String csTemplatePath;
        // The file path must exist on your computer.
        // Replace <file path> below with an actual path.
        String csPrjPath = <file path>;
    MessageBox.Show("Starting...");
csTemplatePath = 
soln.GetProjectTemplate("ConsoleApplication.zip", "CSharp");
        // Create a new C# Console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath,
 "New CSharp Console Project", false);
        MessageBox.Show("Done!");
    }
    catch(SystemException ex)
    {
        MessageBox.Show("ERROR: " + ex);
    }
}
Show:
© 2014 Microsoft