如何:以编程方式创建项目项
更新:2007 年 11 月
若要以编程方式创建项目项,首先调用 GetProjectItemTemplate,然后将返回的模板路径传递给 AddFromTemplate。有关更多信息,请参见 Visual Studio 模板。
GetProjectItemTemplate 方法返回适当的 .zip 文件中的模板,以与 AddFromTemplate 方法一起使用。在 <驱动器>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\语言 中可以找到针对所有语言的项目项模板。
您还可以创建自己的自定义项目项模板。若要指定将在其中存储您的模板的目录,请单击“工具”菜单中的“选项”。在“选项”对话框的左侧窗格中,单击“项目和解决方案”。在“Visual Studio 用户项模板位置”框中为您的模板键入路径。或者,您可以接受默认位置。
自定义模板要求唯一的文件名,该文件名与 <驱动器>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\语言 中定义的文件名不冲突。
请确保使用长文件名(相对于 8.3 文件名)。有关更多信息,请参见创建项目模板和项模板。
若要从解决方案中移除项目,请使用 Remove。
下面的示例介绍创建项目项的泛型方法。列在“另请参见”节中的主题介绍如何使用语言特定的模型。
说明: |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。这些过程是在“常规开发设置”处于活动状态时开发的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 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 IDE 中的一个 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# 项目