Compartir a través de


Solution2 (Interfaz)

Representa todos los proyectos y propiedades de soluciones del entorno de desarrollo integrado (IDE).

Espacio de nombres:  EnvDTE80
Ensamblado:  EnvDTE80 (en EnvDTE80.dll)

Sintaxis

'Declaración
<GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")> _
Public Interface Solution2 _
    Inherits _Solution
[GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface Solution2 : _Solution
[GuidAttribute(L"FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface class Solution2 : _Solution
[<GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")>]
type Solution2 =  
    interface 
        interface _Solution 
    end
public interface Solution2 extends _Solution

El tipo Solution2 expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública AddIns Obtiene una colección AddIns que contiene todos los complementos actualmente disponibles que estén asociados a la solución.
Propiedad pública Count Obtiene un valor que indica el número de proyectos de la solución.
Propiedad pública DTE Obtiene el objeto de extensibilidad de nivel superior.
Propiedad pública Extender Obtiene el objeto Extender solicitado si está disponible para este objeto.
Propiedad pública ExtenderCATID Obtiene el identificador de categoría (CATID) de extensor para el objeto.
Propiedad pública ExtenderNames Obtiene una lista de los objetos Extender disponibles para el objeto.
Propiedad pública FileName Infraestructura. Sólo para uso interno de Microsoft.
Propiedad pública FullName Obtiene la ruta de acceso completa y el nombre de archivo del objeto.
Propiedad pública Globals Devuelve el objeto Globals que contiene los valores de variable que pueden guardarse en el archivo de solución (.sln), en el archivo de proyecto o en los datos de perfil del usuario.
Propiedad pública IsDirty Infraestructura. Sólo para uso interno de Microsoft.
Propiedad pública IsOpen Obtiene un valor que indica si está abierta una solución.
Propiedad pública Parent Obtiene el objeto primario inmediato de un objeto Solution2.
Propiedad pública Projects Obtiene una colección de los proyectos actuales de la solución.
Propiedad pública Properties Obtiene una colección de todas las propiedades pertenecientes al objeto Solution2.
Propiedad pública Saved Obtiene o establece un valor que indica si una solución no se ha modificado desde la última vez que se guardó o se abrió.
Propiedad pública SolutionBuild Obtiene el objeto SolutionBuild para la solución, que representa la raíz del modelo de automatización de compilación en cuanto a la solución.
Propiedad pública TemplatePath Se reemplaza por GetProjectTemplate.

Arriba

Métodos

  Nombre Descripción
Método público AddFromFile Agrega un proyecto a la solución, basado en un archivo de proyecto ya almacenado en el sistema.
Método público AddFromTemplate Copia un archivo de proyecto existente y todos los elementos o subdirectorios que contenga a la ubicación especificada, y lo agrega a la solución.
Método público AddSolutionFolder Agrega una carpeta de soluciones a una colección ProjectItems.
Método público Close Cierra la solución actual.
Método público Create Crea una solución vacía en el directorio especificado con el nombre que se indique.
Método público FindProjectItem Ubica un elemento en el proyecto.
Método público GetEnumerator Devuelve una enumeración para los elementos de una colección.
Método público GetProjectItemTemplate Devuelve una ruta de acceso a la plantilla de elementos del proyecto indicada.
Método público GetProjectTemplate Devuelve una ruta de acceso a la plantilla de proyecto indicada.Si una plantilla tiene un elemento de RequiredFrameworkVersion mayor que 4,0, debe proporcionar la versión en la llamada para que la búsqueda de la plantilla encuentra una coincidencia.Por ejemplo, en lugar de llamar a GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"); llamada GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.
Método público Item Devuelve un miembro indizado de una colección Projects.
Método público Open Abre una solución especificada.
Método público ProjectItemsTemplatePath Se reemplaza por GetProjectItemTemplate.
Método público Remove Quita el proyecto especificado de la solución.
Método público SaveAs Guarda la solución.

Arriba

Comentarios

Esta interfaz contiene una colección de todos los proyectos en la instancia actual del IDE y todas las propiedades de soluciones como, por ejemplo, configuraciones de compilación. Contiene un elemento de proyecto por cada proyecto, ya sea un proyecto ajustado, un subproyecto o un proyecto de nivel superior.

Puede buscar la solución abierta utilizando la propiedad DTE.Solution. Para hacer referencia a proyectos virtuales como, por ejemplo, MiscFiles o SolutionItems, utilice Solution.Item(EnvDTE.Constants.vsProjectKindMisc o Solution.Item(EnvDTE.Constants.vsProjectKindSolutionItems.

Ejemplos

Para obtener información sobre cómo ejecutar este código de complemento, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

El siguiente código crea una nueva solución de aplicación de consola en la ruta de acceso determinada.

Public Sub OnConnection(ByVal application As Object, _
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    SolutionExample(_applicationObject)
End Sub

Sub SolutionExample(ByVal dte As DTE2)
    ' This function creates a solution and adds a Visual Basic Console
    ' project to it.
    Try
        Dim soln As Solution2 = CType(DTE.Solution, Solution2)
        Dim vbTemplatePath As String
        ' This path must exist on your computer.
        ' Replace <file path> below with an actual path.
        Dim vbPrjPath As String = <file path>
        MsgBox("starting")
        ' Get the project template path for a Visual Basic console application project.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "VisualBasic")
        ' Create a new Visual Baic Console project using the template obtained 
        ' above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
        "New Visual Basic Console Project", False)
        MsgBox("done")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
//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);
    }
}

Vea también

Referencia

EnvDTE80 (Espacio de nombres)