2017-08-08 4 views
1

J'ai une solution avec des projets. J'ai aussi dans le dossier du répertoire de la solution avec les fichiers msbuild.Récupère le répertoire parent de MSBuildProjectDirectory

Dans le fichier msbuild j'ai le code suivant:

<PropertyGroup Label="Build Directories"> 
    <RootPath>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)'))</RootPath> 
</PropertyGroup> 

<ItemGroup> 
    <MSBuildProjectInfrastructure Include="$(RootPath)MyApp.Services.Infrastructure.sln"> 
    <AdditionalProperties>Configuration=$(Configuration);Platform=$(Platform);</AdditionalProperties> 
    </MSBuildProjectInfrastructure> 
</ItemGroup> 

Ce qui fonctionne mal, que je dois aller dans le répertoire parent pour trouver MyApp.Services.Infrastructure.sln

Structure:

SolutionFolder 

-- MsBuildsFolder 

-- ProjectFile 

Voici quite similar question, mais ne résout pas mon problème

Répondre

3

Pour obtenir le dossier parent, vous pouvez laisser MSBuild déterminer l'emplacement du fichier connu dans ce dossier au moyen de la fonction intégrée de la propriété GetDirectoryNameOfFileAbove:

<PropertyGroup> 
    <RootPath>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), MyApp.Services.Infrastructure.sln))</RootPath> 
    </PropertyGroup>