Igor est assez proche. MSBuildProjectDirectory
est la propriété qui vous donnera le chemin complet vers le fichier projet qui a été invoqué en ligne de commande. Donc, si vous avez les scripts suivants :
- C:\temp\MyProj.proj
- C:\shared\shared.targets
Et que MyProj.proj
importe shared.targets
et que celui-ci est passé à msbuild.exe, alors la valeur de MSBuildProjectDirectory
sera toujours C:\temp même si vous y faites référence à l'intérieur de shared.targets. Si vos shared.targets nécessitent une connaissance du chemin, ceux-ci doivent être déclarés dans des propriétés connues. Par exemple, les fichiers de projet C# définissent la valeur pour OutputPath
et le fichier partagé Microsoft.Common.targets
utilise cette propriété.
Édition : MSBuild 4
Si vous utilisez MSBuild 4, vous pouvez également utiliser ces propriétés pour ce type de valeur.
- MSBuildThisFile
- MSBuildThisFileDirectory
- MSBuildThisFileDirectoryNoRoot
- MSBuildThisFileExtension
- MSBuildThisFileFullPath
- MSBuildThisFileName
Voir http://sedodream.com/2010/03/11/MSBuild40ReservedProperties.aspx.
0 votes
Est-ce que votre dossier temporaire sera toujours un sous-dossier de l'emplacement à partir duquel ce script doit être exécuté?