Compartilhar via


Método IVsSolution.CreateProject (Guid, String, String, String, UInt32, Guid, IntPtr)

 

Publicado: abril de 2016

Cria ou abre um projeto.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)

Sintaxe

int CreateProject(
    [InAttribute] ref Guid rguidProjectType,
    string lpszMoniker,
    string lpszLocation,
    string lpszName,
    uint grfCreateFlags,
    [InAttribute] ref Guid iidProject,
    out IntPtr ppProject
)
int CreateProject(
    [InAttribute] Guid% rguidProjectType,
    String^ lpszMoniker,
    String^ lpszLocation,
    String^ lpszName,
    unsigned int grfCreateFlags,
    [InAttribute] Guid% iidProject,
    [OutAttribute] IntPtr% ppProject
)
abstract CreateProject : 
        rguidProjectType:Guid byref *
        lpszMoniker:string *
        lpszLocation:string *
        lpszName:string *
        grfCreateFlags:uint32 *
        iidProject:Guid byref *
        ppProject:nativeint byref -> int
Function CreateProject (
    <InAttribute> ByRef rguidProjectType As Guid,
    lpszMoniker As String,
    lpszLocation As String,
    lpszName As String,
    grfCreateFlags As UInteger,
    <InAttribute> ByRef iidProject As Guid,
    <OutAttribute> ByRef ppProject As IntPtr
) As Integer

Parâmetros

  • rguidProjectType
    [in] Identificador exclusivo para o tipo de projeto obtido quando a fábrica de projeto é registrada.Pode ser GUID_NULL, se um valor para lpszMoniker é especificado.Este parâmetro indica o tipo de projeto para criar ou adicionar à solução.Se o valor for GUID_NULL, o ambiente tenta determinar o tipo de projeto com base na extensão do arquivo.
  • lpszMoniker
    [in] Ponteiro para o identificador de origem do arquivo.Se esse método é usado para abrir um projeto, em seguida, especifique o caminho para o projeto no disco (incluindo a extensão de nome e o arquivo de projeto).Se o método estiver sendo usado para criar um projeto, em seguida, especifique o caminho completo para o arquivo de modelo que será clonado.
  • lpszLocation
    [in] Ponteiro para o caminho que especifica o local para o novo projeto.Este parâmetro é usado somente quando CPF_CLONEFILE é especificado para o grfCreateFlags parâmetro; Caso contrário é null (para abrir projeto).Se o projeto for um projeto baseado em diretório, em seguida, esse é o diretório do projeto.O arquivo de projeto para o projeto é salvo nesse diretório.Se o projeto não for baseada em diretório, esse local é usado somente para salvar o arquivo de projeto e, talvez, como o diretório padrão para itens criados recentemente.O szLocation parâmetro está definido para sempre incluir as barras invertidas (\).Em seguida, a fábrica de projeto não precisa procurar caminhos que se parecem com "C:\" versus "C:\MyProjects\Project1" ao construir o nome do caminho do arquivo de projeto.
  • lpszName
    [in] Ponteiro para o novo nome do projeto.Este parâmetro é usado somente quando CPF_CLONEFILE é especificado para o grfCreateFlags parâmetro; Caso contrário é null (para abrir projeto).O nome do projeto não inclui uma extensão de arquivo.
  • grfCreateFlags
    [in] Controla como um projeto é criado ou aberto.Para obter uma lista de grfCreateFlags valores, consulte __VSCREATEPROJFLAGS.
  • iidProject
    [in] Identificador da retornado ppProject.Esse valor pode ser iid_NULL para não especificar nenhum retorno.
  • ppProject
    [out, iid_is(iidProject)] Ponteiro para o projeto recém-criado.

Valor de retorno

Type: System.Int32

Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De 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
);

Se você estiver usando esse método para criar um novo projeto, em seguida, fornecer valores para lpszMoniker, lpszLocation, e lpszName.Se você estiver usando esse método para abrir um projeto existente, em seguida, lpszLocation, e lpszName são null.

Esse método manipula Criando e abrindo projeto arquivos somente e não suporta a abertura de um arquivo de solução, ou seja, arquivos com uma extensão. SLN, DSW ou VBG.Abrir esses tipos de arquivo é tratado pelo OpenSolutionFile método.

Criar um novo projeto é realizado por meio da clonagem de um projeto existente que esteja vazio.O ambiente determina quais VSPackage chama esse método com base na extensão do arquivo.

Se ambos os CPF_CLONEFILE e CPF_OVERWRITE for especificado, o projeto substitui o arquivo de projeto de destino.Se CPF_OVERWRITE não for especificado, um específico HRESULT, VS_E_PROJECTALREADYEXISTS, é retornado deste método.O ambiente, em seguida, exibe o Este projeto já existe caixa de diálogo.Se o usuário optar por substituir o arquivo de projeto, o ambiente chama o CreateProject método novamente, especificando em ambos CPF_CLONEFILE e CPF_OVERWRITE.

Esse método pode exibir a interface do usuário, a menos que o CPF_SILENT sinalizador for especificado.Este método não deve relatar mensagens de erro para o usuário.Esse método usa as convenções de emissão de relatórios de erro padrão do ambiente; ele chama o SetErrorInfo método para registrar qualquer erro que ocorre e retorna um erro HRESULT.O chamador, por fim, chama o ReportErrorInfo método para exibir a mensagem de erro.

Quando esse método retorna um erro HRESULT, ele chama o SetErrorInfo método para fornecer informações sobre quais VSPackage ou projeto não pôde ser carregado e por quê.O chamador desse método pode usar o ReportErrorInfo método para mostrar essa mensagem de erro para o usuário.

Consulte também

Interface IVsSolution
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo