如何:以编程方式创建项目项
若要以编程方式创建项目项,请首先调用 GetProjectItemTemplate,然后将返回的模板路径传递给 AddFromTemplate。有关更多信息,请参见 Visual Studio Templates。
GetProjectItemTemplate 方法返回适当的 .zip 文件中的模板,以与 AddFromTemplate 方法一起使用。在 Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\语言\ 中可以找到针对所有语言的项目项模板。
您还可以创建自己的自定义项目项模板。若要指定将在其中存储您的模板的目录,请单击**“工具”菜单中的“选项”。在“选项”对话框的左侧窗格中,单击“项目和解决方案”。在“Visual Studio 用户项模板位置”**框中键入您的模板的路径。
自定义模板要求唯一的文件名,并且该文件名不会与 \Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\语言\ 中定义的文件名冲突。
请确保使用长文件名(而非 8.3 文件名)。有关更多信息,请参见Creating Project and Item Templates。
若要从解决方案中移除项目,请使用 Remove。
下面的示例介绍创建项目项的泛型方法。列在“另请参见”节中的主题介绍如何使用语言特定的模型。
说明 |
---|
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。您安装的 Visual Studio 版本以及使用的设置决定了这些元素。有关更多信息,请参见 Visual Studio 设置。 |
将项添加到项目中
以编程方式将项添加到项目中
启动 Visual Studio 并创建一个 Visual Studio 外接程序项目。
向该外接程序的 Connect 类中添加本主题后面显示的代码。
运行该外接程序项目,然后通过以下方式在**“外接程序管理器”中激活该项目:单击“工具”菜单上的“外接程序管理器”**,然后选中该外接程序旁边的方框。
示例
下面的示例演示如何以编程方式将项添加到现有 Visual Basic 项目中。
' Before running the following code, be sure that a Visual Basic
' project is open in Visual Studio.
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)
createProjectItem(_applicationObject)
End Sub
Sub createProjectItem(ByVal dte As DTE2)
' Adds a new Class to an existing Visual Basic project.
Dim soln As Solution2
Dim prj As Project
soln = CType(_applicationObject.Solution, Solution2)
Dim prjItem As ProjectItem
Dim itemPath As String
' Point to the first project (the Visual Basic project).
prj = soln.Projects.Item(1)
' Retrieve the path to the Class template.
itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj")
' Create a new project item based on the template, in this case,
' a Class.
prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass")
End Sub
// Before running the following code, be sure that a Visual Basic
// project is open in Visual Studio.
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.
createProjectItem(_applicationObject);
}
public void createProjectItem(DTE2 dte)
{
//Adds a new Class to an existing Visual Basic project.
Solution2 soln;
Project prj;
soln = (Solution2)_applicationObject.Solution;
ProjectItem prjItem;
String itemPath;
// Point to the first project (the Visual Basic project).
prj = soln.Projects.Item(1);
// Retrieve the path to the class template.
itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj");
//Create a new project item based on the template, in this
// case, a Class.
prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass");
}
编译代码
若要编译此代码,请创建一个 Visual Studio 外接程序项目,并用该示例中的代码替换 Connect.cs 或 Connect.vb 类的代码。在运行该外接程序前,请在 Visual Studio 中打开一个 Visual Basic 项目。有关如何运行外接程序的信息,请参见如何:使用外接程序管理器控制外接程序。
可靠编程
当使用项目项名称作为 Solution.Projects.Item 的参数时,您必须使用项目的唯一名称。此唯一名称是从包含解决方案 (.sln) 文件的目录到项目文件的相对路径。
例如,请考虑下面的解决方案/项目结构:
SomeSolution.sln
WinApp1
WinApp1.VBProj
项目的唯一名称将为“WinApp1/WinApp1.VBProj”,并且对 Item 方法的调用将是 Solution.Projects.Item("WinApp1/WinApp1.VBProj")。
请参见
任务
概念
操作 Visual Basic 和 Visual C# 项目