SolutionFolder - интерфейс
Обновлен: Ноябрь 2007
Папки решений представляют собой контейнеры проектов, которые позволяют разработчикам лучше организовывать большие приложения.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
<GuidAttribute("F8F69788-267C-4408-8967-74F26108C438")> _
Public Interface SolutionFolder
'Применение
Dim instance As SolutionFolder
[GuidAttribute("F8F69788-267C-4408-8967-74F26108C438")]
public interface SolutionFolder
[GuidAttribute(L"F8F69788-267C-4408-8967-74F26108C438")]
public interface class SolutionFolder
public interface SolutionFolder
Заметки
В Visual Studio 2005 решения кроме папок проектов могут содержать папки решений. Папки решений представляют собой контейнеры проектов, которые позволяют разработчикам лучше организовывать большие приложения.
Свойство решения Projects возвращает коллекцию объектов Project. У каждого отдельного проекта есть свойство Kind, которому можно задать значение vsProjectKindSolutionFolder. Для получения интерфейса SolutionFolder следует вызвать Project.Object и потом привести объект возвращенный объект к типу SolutionFolder.
Примеры
В этом примере создается новая папка решения, в которую добавляется проект из существующего файла. Перед запуском данного примера создайте папку "Projects" на главном диске компьютера (в данном примере на диске "C:"), после чего создайте в этой папке проект библиотеки классов Visual C# с именем "ClassLibrary1". Перед запуском этой надстройки необходимо также открыть проект в интегрированной среде разработки Visual Studio.
Дополнительные сведения о запуске этого примера в виде надстройки см. в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.
Imports EnvDTE
Imports EnvDTE80
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)
solnFolderAddFromFileExample(_applicationObject)
End Sub
Sub solnFolderAddFromFileExample(ByVal dte As DTE2)
' Before running this example, create a "Projects" folder
' off your main drive (C: in this example), and create a C#
' class library project, named ClassLibrary1 in that folder.
Dim soln As Solution2 = CType(_applicationObject.Solution _
, Solution2)
Dim prj As Project
Dim SF As SolutionFolder
Try
Dim prjPath As String = _
"C:\Projects\ClassLibrary1\ClassLibrary1\ClassLibrary1.csproj"
' Open a project in the Visual Studio IDE before running
' this add-in.
' Add a solution folder.
prj = soln.AddSolutionFolder("A new soln folder")
SF = CType(prj.Object, SolutionFolder)
' Add a project to the new solution folder.
SF.AddFromFile(prjPath)
MsgBox("Added a new solution folder that contains a _
C# project named ClassLibrary1.")
Catch ex As System.Exception
MsgBox(ex.ToString)
End Try
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
solnFolderAddFromFileExample(_applicationObject);
}
public void solnFolderAddFromFileExample(DTE2 dte)
{
// Before running this example, create a "Projects" folder
// off your main drive (C: in this example), and create a C#
// class library project, named ClassLibrary1 in that folder.
Solution2 soln = (Solution2)_applicationObject.Solution;
Project prj;
SolutionFolder SF;
try
{
String prjPath =
"C:\\Projects\\ClassLibrary1\\ClassLibrary1\\ClassLibrary1.csproj";
// Open a project in the Visual Studio IDE before running
// this add-in.
// Add a solution folder.
prj = soln.AddSolutionFolder("A new soln folder");
SF = (SolutionFolder)prj.Object;
// Add a project to the new solution folder.
SF.AddFromFile(prjPath);
MessageBox.Show("Added a new solution folder that contains a
C# project named ClassLibrary1.");
}
catch(SystemException ex)
{
MessageBox.Show(ex.ToString());
}
}