Solution3.GetProjectTemplate - метод
Возвращает путь к указанному шаблону проекта.
Если шаблон содержит элемент RequiredFrameworkVersion выше, чем 4.0, необходимо указать версию в вызове, что поиск шаблона обнаруживает совпадение. Например, вместо вызова GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"); вызов GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.
Пространство имен: EnvDTE90
Сборка: EnvDTE90 (в EnvDTE90.dll)
Синтаксис
'Декларация
Function GetProjectTemplate ( _
TemplateName As String, _
Language As String _
) As String
string GetProjectTemplate(
string TemplateName,
string Language
)
String^ GetProjectTemplate(
String^ TemplateName,
String^ Language
)
abstract GetProjectTemplate :
TemplateName:string *
Language:string -> string
function GetProjectTemplate(
TemplateName : String,
Language : String
) : String
Параметры
TemplateName
Тип: StringИмя шаблона.
Language
Тип: StringЯзык, использовавшийся для создания шаблона.
Возвращаемое значение
Тип: String
Полный путь к шаблону проекта.
Заметки
Шаблоны проектов хранятся в виде ZIP-файлов. Этот метод запрашивает проект по имени и языку и возвращает путь к шаблону.
Параметры GetProjectTemplate могут предоставляться несколькими различными способами, как показано ниже.
"CSharp" передается в параметре Language, а имя ZIP-файла — в параметре TemplateName.
GetProjectTemplate("PocketPC2003-ClassLibrary.zip", "CSharp");
"CSharp" передается в параметре Language, частичный путь к файлу; "PocketPC2003\ClassLibrary.vstemplate" передается, чтобы уникальным образом определить TemplateName.
GetProjectTemplate("PocketPC2003\ClassLibrary.vstemplate", "CSharp");//partial file path
Строка "CSharp" передается в параметре Language, а строка "Pocket PC 2003 Class Library" — в параметре TemplateName. Строка "Pocket PC 2003 Class Library" получается из иерархии папок и на нее ссылаются как на строку интерфейса пользователя. К другим строкам пользовательского интерфейса относятся "Console Application" и "Windows Application".
Примечание
Строки пользовательского интерфейса зависят от языкового стандарта.Использование имени ZIP-файла — это самый безопасный способ передачи параметра TemplateName.
GetProjectTemplate("Pocket PC 2003 Class Library", "CSharp");
Строка "CSharp" передается в параметра Language, а строка "PocketPC2003\Pocket PC 2003 Class Library" — в параметре TemplateName. Это включает строку пользовательского интерфейса и частичный путь, чтобы уникальным образом определить шаблон.
GetProjectTemplate("PocketPC2003\Pocket PC 2003 Class Library", "CSharp");
Кроме того, можно создавать собственные шаблоны проектов. Чтобы выбрать папку для хранения шаблонов, в меню Сервис щелкните Параметры. В левой части окна Параметры щелкните Проекты и решения. Введите пути для своих шаблонов в поле Размещение пользовательских шаблонов проектов Visual Studio. Также можно использовать значения этих параметров по умолчанию.
Имена файлов пользовательских шаблонов должны быть уникальными и не должны конфликтовать с именами файлов, определенными в:
- <диск>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\язык
Убедитесь в том, что используются длинные имена файлов (а не соглашение 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 Solution3 = CType(DTE.Solution, Solution3)
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{
Solution3 soln = (Solution3)_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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Для получения дополнительной информации см. Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Другие ресурсы
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации