0

J'écris un Assistant Visual Studio modèle en utilisant C# sur Visual Studio 2012.EnvDTE - dépendances Modifier du projet dans le fichier .sln

J'ai suivi les étapes MSDN: j'ai créé un modèle VS, alors je créé une classe projet de bibliothèque avec une classe qui implémente l'interface IWizard, j'ai configuré le fichier .vstemplate et etc ...

maintenant, mon objectif est d'écrire dans le code de la fonction RunFinished(), qui effectue les opérations suivantes:

sur la création de projet, il utilise ENVDTE, obtient le type de projet et ajoute à la solution dep fichier .sln les limites de ce projet.

par exemple:

L'utilisateur a créé un nouveau projet « myProject » avec le genre « 8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942 », et je voudrais signer que ce projet est dépend sur un autre projet avec le type "9E779BC1-B9D6-425C-B552-CF04B5B786A2".

Sur la création du projet, ce texte est ajouté au fichier .sln:

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "myProject", "myProject\myProject.vcxproj", "{20C9C96E-09FB-4DA3-A5C6-DE699FEF3916}" 
EndProject 

Et je veux que mon code pour modifier ce texte il sera comme:

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "myProject", "myProject\myProject.vcxproj", "{20C9C96E-09FB-4DA3-A5C6-DE699FEF3916}" 
    ProjectSection(ProjectDependencies) = postProject 
     {9E779BC1-B9D6-425C-B552-CF04B5B786A2} = {9E779BC1-B9D6-425C-B552-CF04B5B786A2} 
    EndProjectSection 
EndProject 

En ce qui concerne maintenant j'ai ce code:

DTE dte; 
dte = (DTE)automationObject; 
Solution solution; 
solution = dte.Solution; 
Projects ps = solution.Projects; 

var item = ps.GetEnumerator(); 
while (item.MoveNext()) 
{ 
    var project = item.Current as Project; 
    string kind = project.Kind; 
    //TODO: edit project dependencies...   
} 

Avez-vous une idée de ce problème? Merci!!

Répondre

1

J'ai trouvé ma solution:

var bldDepends = Solution.SolutionBuild.BuildDependencies.Item(project.UniqueName); 
bldDepends.AddProject("PATH\\project_name.vcxproj"); 

Merci à tous pour essayer de l'aide ...

Questions connexes