Pergunta

Eu queria saber como usar o modelo para um projeto Empty Visual C ++ para criar programaticamente uma nova solução com esse projeto vazio.O código (C #) que tenho agora é:

string VSProgID = "VisualStudio.Solution.10.0";
Type solnObjType = System.Type.GetTypeFromProgID(VSProgID, true);
Solution4 soln = (Solution4) System.Activator.CreateInstance(solnObjType, true);
soln.Create(@"C:\NewSoln", "New");
soln.SaveAs(@"C:\NewSoln\New.sln");
string emptyVCProjPath = soln.GetProjectTemplate("General/Empty Project", "VC++"); // Here's where I need help
soln.AddFromTemplate(emptyVCProjPath, @"C:\NewSoln\NewProj", "New.vcxproj", false);

Não consegui encontrar o modelo de projeto vazio do VC ++ no local onde todos os outros modelos (C # / F # / VB) estão localizados.O modelo de projeto vazio do VC ++ aparece nos modelos instalados quando eu crio um novo projeto manualmente por meio do IDE.Quais devem ser os parâmetros para soln.GetProjectTemplate()?Parece não reconhecer "VC++" como um idioma.Eu sei que "CSharp" e "VisualBasic" são opções válidas.Mas eu queria um projeto vazio VC ++.Qualquer ajuda será muito apreciada.

Foi útil?

Solução

Estou postando esta resposta na esperança de que ela possa ajudar alguém com o mesmo problema que eu.

Aparentemente, a API da estrutura de extensibilidade do Visual Studio não fornece uma opção para criar um projeto Visual C ++ vazio de forma programática. Tive que gerar a solução e os arquivos do projeto para conseguir isso. Especificamente, os arquivos [solution_name].sln, [project_name].vcxproj e [project_name].vcxproj.filters tiveram que ser gerados. Um GUID teve que ser gerado para o novo projeto e inserido nos locais apropriados. Se for necessário adicionar arquivos a este projeto vazio, tags ClInclude precisam ser geradas para arquivos de cabeçalho e tags ClCompile para arquivos de origem. Essas tags são adicionadas aos arquivos [project_name].vcxproj e [project_name].vcxproj.filters. Consulte os arquivos de um projeto Visual C ++ existente para ajudá-lo a descobrir o que vai para onde. É muito simples.


< PaulUPDATE

Por algum motivo, a solução VC ++ gerada dessa forma não abre diretamente (clicando duas vezes no arquivo de solução no Windows Explorer). Tenho que iniciar o Visual Studio e abrir a solução a partir daí.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top