Solution4.GetProjectItemTemplates - метод
Возвращает коллекцию шаблонов элементов проекта для указанного проекта.
Пространство имен: EnvDTE100
Сборка: EnvDTE100 (в EnvDTE100.dll)
Синтаксис
'Декларация
Function GetProjectItemTemplates ( _
Language As String, _
CustomDataSignature As String _
) As Templates
Templates GetProjectItemTemplates(
string Language,
string CustomDataSignature
)
Templates^ GetProjectItemTemplates(
String^ Language,
String^ CustomDataSignature
)
abstract GetProjectItemTemplates :
Language:string *
CustomDataSignature:string -> Templates
function GetProjectItemTemplates(
Language : String,
CustomDataSignature : String
) : Templates
Параметры
Language
Тип: StringЯзык, используемый для написания шаблона элемента проекта.
CustomDataSignature
Тип: StringПодпись для любых метаданных, связанных с шаблоном элемента проекта.
Возвращаемое значение
Тип: Templates
Коллекция шаблонов, содержащая имена всех шаблонов элементов проекта.
Заметки
Шаблоны проектов хранятся в виде ZIP-файлов. Этот метод запрашивает проект по имени и языку и возвращает путь к шаблону.
Параметры GetProjectItemTemplate могут предоставляться несколькими различными способами, как показано ниже.
В качестве параметра Language передается идентификатор GUID для виртуального проекта интеллектуального устройства Visual Basic, а в качестве параметра TemplateName — имя ZIP-файла.
GetProjectItemTemplate("NETCFv2-Class.zip", "{3114F5B0-E435-4bc5-A03D-168E20D9BF83}");
В качестве параметра Language передается идентификатор GUID для виртуального проекта интеллектуального устройства Visual Basic, а в качестве параметра TemplateName — строка "Class". Строка "Class" ("Класс") получается из иерархии папок и на нее ссылаются как на строку интерфейса пользователя. Другие строки интерфейса пользователя: "HTML Page" ("Страница HTML") и "Splash Screen" ("Экран-заставка"). Строки пользовательского интерфейса зависят от языкового стандарта. Использование имени ZIP-файла — это самый безопасный способ передачи параметра TemplateName.
GetProjectItemTemplate("Class", "{3114F5B0-E435-4bc5-A03D-168E20D9BF83}");
Строка "VisualBasic" передается в параметре Language, а имя ZIP-файла в параметре TemplateName. Это работает, так как файл NETCFv2-Class.zip уникален для Smart Devices.
GetProjectItemTemplate("NETCFv2-Class.zip", "VisualBasic/SmartDevice-NETCFv2");
Кроме того, можно создавать собственные шаблоны для элементов проектов. Чтобы выбрать папку для хранения шаблонов, в меню Сервис щелкните Параметры. В левой части окна Параметры щелкните Проекты и решения. Введите пути для своих шаблонов в поля Размещение пользовательских шаблонов элементов Visual Studio. Также можно использовать местоположение по умолчанию.
Имена файлов пользовательских шаблонов должны быть уникальными и не должны конфликтовать с именами файлов, определенными в:
<диск>:\Program Files\Microsoft Visual Studio 9\Common7\IDE\ItemTemplates\язык.
Убедитесь в том, что используются длинные имена файлов (а не соглашение 8.3). Для получения дополнительной информации см. Creating Project and Item Templates.
Примеры
Сведения о запуске этого кода надстройки см. в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.
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 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 = 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)
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.
SolutionExample((DTE2)_applicationObject);
}
public void SolutionExample(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);
}
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Для получения дополнительной информации см. Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Другие ресурсы
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации