Поделиться через


Solution4 - интерфейс

Представляет все проекты и свойства решения в интегрированной среде разработки (IDE). Переопределяет классы Solution, Solution2 и Solution3.

Пространство имен:  EnvDTE100
Сборка:  EnvDTE100 (в EnvDTE100.dll)

Синтаксис

'Декларация
<GuidAttribute("CDA7305C-78B6-4D9D-90AD-93EBE71F9341")> _
Public Interface Solution4 _
    Inherits Solution3
[GuidAttribute("CDA7305C-78B6-4D9D-90AD-93EBE71F9341")]
public interface Solution4 : Solution3
[GuidAttribute(L"CDA7305C-78B6-4D9D-90AD-93EBE71F9341")]
public interface class Solution4 : Solution3
[<GuidAttribute("CDA7305C-78B6-4D9D-90AD-93EBE71F9341")>]
type Solution4 =  
    interface 
        interface Solution3 
    end
public interface Solution4 extends Solution3

Тип Solution4 предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство AddIns Возвращает коллекцию AddIns, которая содержит все доступные в настоящий момент надстройки, связанные с решением.
Открытое свойство Count Возвращает значение, указывающее число проектов в решении.
Открытое свойство DTE Возвращает объект расширения верхнего уровня.
Открытое свойство Extender Получает запрашиваемый объект-расширитель, если он доступен для данного объекта.
Открытое свойство ExtenderCATID Получает идентификатор категории расширителя (CATID) для объекта.
Открытое свойство ExtenderNames Получает список доступных расширителей для объекта.
Открытое свойство FileName Инфраструктура. Получает имя файла.
Открытое свойство FullName Возвращает полный путь и имя файла объекта.
Открытое свойство Globals Возвращает объект Globals, содержащий любые значения переменных, которые можно сохранить в файле решения (SLN-файл), в файле проекта или в данных профиля пользователя.
Открытое свойство IsDirty Инфраструктура. Определяет, находится ли решение в "грязном" состоянии (изменено, но не сохранено).
Открытое свойство IsOpen Получает значение, указывающее, открыто ли решение.
Открытое свойство Parent Получает непосредственный родительский объект для объекта Solution2.
Открытое свойство Projects Возвращает коллекцию проектов, которые находятся в настоящий момент в решении.
Открытое свойство Properties Возвращает коллекцию всех свойств, которые относятся к объекту Solution2.
Открытое свойство Saved Возвращает или задает значение, указывающее, изменялось ли решение с момента последнего сохранения или открытия.
Открытое свойство SolutionBuild Возвращает объект SolutionBuild для решения, который предоставляет собой корневой объект модели автоматизации построения на уровне решения.
Открытое свойство TemplatePath Заменяется GetProjectTemplate.

В начало страницы

Методы

  Имя Описание
Открытый метод AddFromFile Добавляет проект в решение, основанное на файла проекта, который уже хранится в системе.
Открытый метод AddFromTemplate Копирует существующий файл проекта и все элементы и вложенные каталоги, которые в нем есть, в указанное место и добавляет его в решение.
Открытый метод AddFromTemplateEx Копирует существующий файл проекта и все элементы и вложенные каталоги, которые в нем есть, в указанное место и добавляет его в решение.
Открытый метод AddSolutionFolder Добавляет папку решений в коллекцию ProjectItems.
Открытый метод Close Закрывает текущее решение.
Открытый метод Create Создает пустое решение в заданном каталоге с заданным именем.
Открытый метод FindProjectItem Помещает элемент в проект.
Открытый метод GetEnumerator Возвращает перечисление элементов коллекции.
Открытый метод GetProjectItemTemplate Возвращает путь к указанному шаблону элемента проекта.
Открытый метод GetProjectItemTemplates Возвращает коллекцию шаблонов элементов проекта для указанного проекта.
Открытый метод GetProjectTemplate Возвращает путь к указанному шаблону проекта.Если шаблон содержит элемент RequiredFrameworkVersion выше, чем 4.0, необходимо указать версию в вызове, что поиск шаблона обнаруживает совпадение.Например, вместо вызова GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"); вызов GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.
Открытый метод Item Возвращает индексированный элемент коллекции Projects.
Открытый метод Open Открывает указанное решение.
Открытый метод ProjectItemsTemplatePath Заменяется GetProjectItemTemplate.
Открытый метод Remove Удаляет указанный проект из решения.
Открытый метод SaveAs Сохраняет решение.

В начало страницы

Заметки

Объект Solution4 представляет собой коллекцию всех проектов в текущем экземпляре IDE и всех свойств решения, таких как конфигурации построения. Объект Solution4 содержит элемент проекта для каждого проекта, независимо от того, какой это проект: заключенный в оболочку, подпроект или проект верхнего уровня.

Для ссылки на этот объект используется DTE.Solution. Для ссылки на виртуальные проекты, например MiscFiles или SolutionItems, используется Solution4.Item(EnvDTE.Constants.vsProjectKindMisc) или Solution4.Item(EnvDTE.Constants.vsProjectKindSolutionItems).

Примеры

Сведения о запуске этого кода надстройки см. в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.

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)
    Solution4Example(_applicationObject)
End Sub

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

public void Solution4Example(DTE2 dte)
{
    // This function creates a solution and adds a Visual C# Console
    // project to it.
    try{
        Solution4 soln = (Solution4)_applicationObject.Solution;
        String csTemplatePath;
        // The file path must exist on your computer.
        // Replace <file path> below with an actual path.
        String csPrjPath = "<file path>";
        "<file path>MessageBox.Show("Starting...");
        "<file path>"<file path>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);
    }
}

См. также

Ссылки

EnvDTE100 - пространство имен