Практическое руководство. Создание проектов программными средствами
Надстройки Visual Studio выступан сопоставления в Visual Studio 2013. Необходимо обновить для надстройки с расширениями VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.
Для создания проекта сначала необходимо вызвать GetProjectTemplate, а затем передать возвращенные пути к шаблону в AddFromTemplate.
Шаблоны проектов имеют расширение VSTEMPLATE и хранятся в ZIP-файлах. Чтобы получить путь к файлу VSTEMPLATE (внутри ZIP-файла), используйте GetProjectTemplate, которые затем передаются в AddFromTemplate для создания проекта (и решения, если оно еще не открыто). Эту операцию можно выполнять любое число раз. При этом каждый проект будет добавлен к открытому в данный момент решению.
Шаблоны проектов для всех языков можно найти в \ Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\ программы Language.
Кроме того, можно создавать собственные шаблоны проектов. Чтобы выбрать папку для хранения шаблонов, в меню Сервис щелкните Параметры. В левой части окна Параметры щелкните элемент Проекты и решения. Введите пути к шаблонам в поле Размещение пользовательских шаблонов проектов Visual Studio.
Пользовательские шаблоны проектов должны быть уникальными имен файлов, они не конфликтуют с именами файлов, которые определены в \ Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\ программы Language.
Убедитесь в том, что используются длинные имена файлов (а не соглашение 8.3). Для получения дополнительной информации см. Creating Project and Item Templates.
Примечание
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Эти процедуры были разработаны с обычными параметрами разработки.Чтобы изменить параметры, выберите команду Импорт и экспортпараметров в меню Сервис.Для получения дополнительной информации см. Настройка параметров разработки в Visual Studio.
Создание проекта
Создание проектов программными средствами
Запустите Visual Studio и создайте проект надстройки Visual Studio.
Добавьте в класс Connect код примера, приведенный ниже в этом разделе.
Запустите проект надстройки и активируйте ее в Диспетчере надстроек.
Для этого выберите команду Диспетчер надстроек в меню Сервис, а затем выберите надстройку.
Пример
В следующем примере GetProjectTemplate и AddFromTemplate используются для создания двух проектов консольных приложений в решении (Visual Basic и Visual C#).
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)
createProjectsFromTemplates(_applicationObject)
End Sub
Sub createProjectsFromTemplates(ByVal dte As DTE2)
Try
' Create a solution with two projects in it, based on project
' templates.
Dim soln As Solution2 = CType(DTE.Solution, _
Solution2)
Dim csTemplatePath As String
Dim vbTemplatePath As String
Dim csPrjPath As String = _
"C:\UserFiles\user1\addins\MyCSProject"
Dim vbPrjPath As String = _
"C:\UserFiles\user1\addins\MyVBProject"
' Get the project template path for a C# console project.
' Console Application is the template name that appears in the
' right pane, "CSharp" is the Language(vstemplate) as seen in
' the registry.
csTemplatePath = soln.GetProjectTemplate _
("ConsoleApplication.zip", "CSharp")
MsgBox("C# template path: " & csTemplatePath)
' Get the project template path for a Visual Basic
' console project.
' "vbproj: is the DefaultProjectExtension as seen in the
' registry.
vbTemplatePath = soln.GetProjectTemplate _
("ConsoleApplication.zip", "vbproj")
MsgBox("Visual Basic template path: " & vbTemplatePath)
' Create a new C# console project using the template obtained
' above.
soln.AddFromTemplate(csTemplatePath, csPrjPath, _
"New CSharp Console Project", False)
' Create a new Visual Basic console project using the template
' obtained above.
soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
"New Visual Basic Console Project", False)
Catch ex As System.Exception
MsgBox("ERROR: " & ex.ToString)
End Try
End Sub
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
createProjectsFromTemplates(_applicationObject);
}
public void createProjectsFromTemplates(DTE2 dte)
{
try
{
// Create a solution with two projects in it, based on project
// templates.
Solution2 soln = (Solution2)dte.Solution;
string csTemplatePath;
string vbTemplatePath;
string csPrjPath = "C:\\UserFiles\\user1\\addins\\MyCSProject";
string vbPrjPath = "C:\\UserFiles\\user1\\addins\\MyVBProject";
// Get the project template path for a C# console project.
// Console Application is the template name that appears in
// the right pane. "CSharp" is the Language(vstemplate) as seen
// in the registry.
csTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip",
"CSharp");
System.Windows.Forms.MessageBox.Show("C# template path: " +
csTemplatePath);
// Get the project template path for a Visual Basic console
// project.
// "vbproj: is the DefaultProjectExtension as seen in the
// registry.
vbTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip",
"vbproj");
System.Windows.Forms.MessageBox.Show("Visual Basic template path: " +
vbTemplatePath);
// Create a new C# console project using the template obtained
// above.
soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp
Console Project", false);
// Create a new Visual Basic console project using the template
// obtained above.
soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "New VB Console
Project", false);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
}
}
См. также
Задачи
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации
Практическое руководство. Создание элементов проекта программными средствами
Основные понятия
Управление проектами Visual Basic и Visual C#
Управление проектами Visual ++