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


Solution2 - интерфейс

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

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

Синтаксис

'Декларация
<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

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

Свойства

  Имя Описание
Открытое свойство 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 Копирует существующий файл проекта и все элементы и вложенные каталоги, которые в нем есть, в указанное место и добавляет его в решение.
Открытый метод AddSolutionFolder Добавляет папку решений в коллекцию ProjectItems.
Открытый метод Close Закрывает текущее решение.
Открытый метод Create Создает пустое решение в заданном каталоге с заданным именем.
Открытый метод FindProjectItem Помещает элемент в проект.
Открытый метод GetEnumerator Возвращает перечисление элементов коллекции.
Открытый метод GetProjectItemTemplate Возвращает путь к указанному шаблону элемента проекта.
Открытый метод 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 Сохраняет решение.

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

Заметки

Этот интерфейс содержит коллекцию всех проектов текущего экземпляра IDE и всех свойств решения, таких как конфигурации построения. Содержит элемент проекта для каждого проекта, независимо от того, упакованный это проект, подпроект или проект верхнего уровня.

Открытое решение можно найти с помощью свойства DTE.Solution. Для обращения к виртуальным проектам, например MiscFiles или SolutionItems, следует использовать свойство Solution.Item(EnvDTE.Constants.vsProjectKindMisc или поле Solution.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)
    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);
    }
}

См. также

Ссылки

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