Trabalhando com projetos em extensões do Visual Studio
Aqui está uma coleção de pequenos exemplos de código sobre diferentes maneiras de trabalhar com projetos.
Obter projeto do arquivo contido
Esta é a maneira de obter o projeto de um se seus arquivos.
string fileName = "c:\\file\\in\\project.txt";
PhysicalFile item = await PhysicalFile.FromFileAsync(fileName);
Project project = item.ContainingProject;
Adicionar arquivos ao projeto
Veja como adicionar arquivos do disco ao projeto.
Project project = await VS.Solutions.GetActiveProjectAsync();
var file1 = "c:\\file\\in\\project\\1.txt";
var file2 = "c:\\file\\in\\project\\2.txt";
var file3 = "c:\\file\\in\\project\\3.txt";
await project.AddExistingFilesAsync(file1, file2, file3);
Encontrar tipo de projeto
Descubra com que tipo de projeto você está lidando.
bool isCsharp = await project.IsKindAsync(ProjectTypes.CSHARP);