IVsSolution.CreateProject 方法

创建或打开一个项目。

命名空间:  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) (用于打开项目)。项目名称不包含文件扩展名。
  • iidProject
    类型:System.Guid%
    [in] 返回的 ppProject的接口标识符 (iid)。此值可以是指定的情况 iid_NULL 返回。
  • ppProject
    类型:System.IntPtr%
    [out, iid_is(iidProject)] 为新创建的项目的指针。

返回值

类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。

备注

COM 签名

从 vsshell.idl:

HRESULT IVsSolution::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 方法处理。

创建新项目通过克隆为空现有项目完成。 该环境确定要 VSPackage 调用此方法根据文件扩展名。

如果 CPF_CLONEFILECPF_OVERWRITE 指定,该项将复盖目标项目文件。 如果 CPF_OVERWRITE 未指定,特定 HRESULT, VS_E_PROJECTALREADYEXISTS,此方法返回。 该环境和显示 此项已存在 对话框。 如果用户选择重写项目文件,环境再次调用 CreateProject 方法,指定 CPF_CLONEFILECPF_OVERWRITE

,除非 CPF_SILENT 标志指定,此方法会显示用户界面。 此方法不应错误信息向用户报告。 此方法使用环境的标准错误报告约定;它调用 SetErrorInfo 方法记录发生的任何错误,然后返回错误 HRESULT。 调用方最终调用 ReportErrorInfo 方法显示错误消息。

当此方法返回错误 HRESULT时,将调用 SetErrorInfo 方法提供 VSPackage 或项目无法加载,并且原因的信息。 此方法的调用方可以使用 ReportErrorInfo 方法显示以下错误消息传递给用户。

.NET Framework 安全性

请参见

参考

IVsSolution 接口

Microsoft.VisualStudio.Shell.Interop 命名空间