2010-03-02 5 views
1

Je souhaite obtenir un répertoire de sortie de projet dans une macro Visual Studio.
J'ai réussi à obtenir une chaîne du chemin (via prj.ConfigurationManager.ActiveConfiguration.Properties et en regardant la propriété OutputDirectory) mais cette chaîne peut contenir des macros telles que $ (foo) où foo est défini dans une feuille de propriétés ou autre. Comment puis-je résoudre cette chaîne de répertoire de sortie dans le répertoire 'réel'?Visual Studio Automation: Obtenir par programme un répertoire de sortie de projet

Répondre

2

J'ai écrit cette fonction pour mes macros qui recherchent le chemin de sortie absolu par sous-chaîne.

Function FindOutBinaryNameByExtension(ByVal prj As EnvDTE.Project, ByVal extName As String) As String 
    FindOutBinaryNameByExtension = Nothing 

    Dim cm As ConfigurationManager = prj.ConfigurationManager 
    If cm IsNot Nothing Then 
     Dim ac As Configuration = cm.ActiveConfiguration 
     For Each grpOut In ac.OutputGroups 
      If grpOut.DisplayName = "Primary output" Then 
       Dim lst As Array = grpOut.FileURLs 
       For i As Long = 0 To lst.Length - 1 
        Dim fileName As String = lst.GetValue(i) 
        If fileName.Contains(extName) Then 
         FindOutBinaryNameByExtension = fileName 
         Exit Function 
        End If 
       Next 
      End If 
     Next 
    End If 
End Function 
+0

Bonne réponse, exactement ce que je cherchais. Merci! –

Questions connexes