IVsSolution2.CreateProject 方法 (Guid%, String, String, String, UInt32, Guid%, IntPtr%)
创建或打开一个项目。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)
语法
声明
Function CreateProject ( _
ByRef rguidProjectType As Guid, _
lpszMoniker As String, _
lpszLocation As String, _
lpszName As String, _
grfCreateFlags As UInteger, _
ByRef iidProject As Guid, _
<OutAttribute> ByRef ppProject As IntPtr _
) As Integer
int CreateProject(
ref Guid rguidProjectType,
string lpszMoniker,
string lpszLocation,
string lpszName,
uint grfCreateFlags,
ref Guid iidProject,
out IntPtr ppProject
)
参数
- rguidProjectType
类型:System.Guid%
[in] 获取项类型的唯一标识符,当项目工厂注册。,如果 lpszMoniker 的值指定,可以是 GUID_NULL。此参数指示项类型创建或添加到解决方案。如果该值为 GUID_NULL,则该环境尝试确定根据文件扩展名的项目类型。
- lpszMoniker
类型:System.String
[in] 将文件标记的指针。如果此方法用于打开项目,则指定路径对项目磁盘 (包括项目名称和文件扩展名)。如果方法用于创建项目,则指定完整路径要克隆的模板文件。
- lpszLocation
类型:System.String
[in] 到路径的指针指定位置的新项目。此参数,仅当 CPF_CLONEFILE 为 grfCreateFlags 参数时,指定使用;否则它是 nullnull 引用(在 Visual Basic 中为 Nothing) (用于打开项目)。如果项目是基于目录的项目,则这是该项的内容。该项目的项目文件此目录保存。如果项目不基于目录,而该位置仅用于保存项目文件和作为新创建的项目的默认目录。szLocation 参数定义始终包括尾部的反斜杠 (\)。然后,项目工厂不必查找类似于 “C 的路径: \" versus "C:\MyProjects\Project 1 ",当构造路径名项目文件时。
- lpszName
类型:System.String
[in] 对新项目名称的指针。此参数,仅当 CPF_CLONEFILE 为 grfCreateFlags 参数时,指定使用;否则它是 nullnull 引用(在 Visual Basic 中为 Nothing) (用于打开项目)。项目名称不包含文件扩展名。
- grfCreateFlags
类型:System.UInt32
[in] 控件项创建或打开。有关 grfCreateFlags 值列表,请参见 __VSCREATEPROJFLAGS。
- iidProject
类型:System.Guid%
[in] 返回的 ppProject的接口标识符 (iid)。此值可以是指定的情况 iid_NULL 返回。
- ppProject
类型:System.IntPtr%
[out, iid_is(iidProject)] 为新创建的项目的指针。
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
COM 签名
从 vsshell.idl:
HRESULT IVsSolution2::CreateProject(
[in] REFGUID rguidProjectType,
[in] LPCOLESTR lpszMoniker,
[in] LPCOLESTR lpszLocation,
[in] LPCOLESTR lpszName,
[in] VSCREATEPROJFLAGS grfCreateFlags,
[in] REFIID iidProject,
[out, iid_is(iidProject)] void **ppProject
);
如果使用此方法创建新的项目,则为 lpszMoniker、 lpszLocation和 lpszName请提供值。 如果使用此方法打开现有项目,则 lpszLocation和 lpszName 是 nullnull 引用(在 Visual Basic 中为 Nothing)。
创建并打开项目文件只的此方法处理和不支持解决方案文件的开始,也就是说,具有 SLN、 DSW 或 VBG 扩展名的文件。 这些文件类型开始使用 OpenSolutionFile 方法处理。
创建新项目通过克隆为空现有项目完成。 该环境确定 IVsPackage 调用此方法根据文件扩展名。
如果 CPF_CLONEFILE 和 CPF_OVERWRITE 指定,该项将复盖目标项目文件。 如果 CPF_OVERWRITE 未指定,特定的 HRESULT, VS_E_PROJECTALREADYEXISTS,此方法返回。 该环境和显示 此项已存在 对话框。 如果用户选择重写项目文件,环境再次调用 CreateProject 方法,指定 CPF_CLONEFILE 和 CPF_OVERWRITE。
,除非 CPF_SILENT 标志指定,此方法会显示用户界面。 此方法不应错误信息向用户报告。 此方法使用环境的标准错误报告约定;它调用 SetErrorInfo 方法记录发生的任何错误,然后返回错误 HRESULT。 调用方最终调用 ReportErrorInfo 方法显示错误消息。
当此方法返回错误 HRESULT 时,会调用 SetErrorInfo 方法提供 VSPackage 或项目无法加载,并且原因的信息。 此方法的调用方可以使用 ReportErrorInfo 方法显示以下错误消息传递给用户。
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。