2011-06-07 26 views
7

NAnt'de projemin kökenini almak için çok basit bir mülk var, bu şeye benziyor ...MSBuild'de ana dizini al

<property name="project.root.folder" 
      value="${directory::get-parent-directory(directory::get-parent-directory(project.local.folder))}" /> 

Bu, tüm yollarımı oluşturduğum projemin köküne götürüyor.

MSBuild'de geçerli dizinimi almak için $ (MSBuildProjectDirectory) kullanabilirim ancak ana dizinin tam yolunu almak istiyorum. NAnt, bir çekicilik çalışan MSBuild'de benzer bir şey olduğunu umduğum dizin :: get-parent-directory kullanır.

Önceki benzer bir soru buldum (http://stackoverflow.com/questions/514264/msbuild-find-msbuildprojectdirectory-parent-directory) ama daha basit bir şey olması gerektiğini düşünüyorum, elbette!

Sam:)

+0

Neye benziyor? Aha, senin için tamir etti! – alternative

+0

haha, bunu nasıl yaptığınızdan emin değil ama teşekkürler! – samaspin

+0

BAMBAM: 4 boşluklu girinti. – alternative

cevap

13

bu MSBuild 4.0 olduğunu varsayıyorum. Bunu yapabilirsiniz:

<PropertyGroup> 
    <RootFolder>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</RootFolder> 
</PropertyGroup> 
<Message Text="RootFolder: '$(RootFolder)'" /> 
+0

sürüm 3.5, utanç, belki de yükseltme zamanı gibi görünüyor! – samaspin

+0

Bu bir VS 2010 projesi mi, yoksa 2008 mi? –

+0

Bu sadece proje dizinini geri vermiyor mu? $ (MSBuildProjectDirectory) kendisini kullandıysanız aynı mı? –

0

Yayınladığınız soru cevap vardır ve iyi bir biri olarak görünüyor. MSBuild, çözümler üretmeye değil projelere odaklanır, böylece size bir çözüm yolu sunmak için bir şeyler bulmak biraz özelleştirme gerektirir. Dikkate alınması gereken bir gerçek, birçok proje için çözüm dosyalarının proje ağacının (veya MSBuild paritesindeki 'koni') kökünde yer almamasıdır.

MSBuild Reserved Properties

+0

Bu bana C: \ GIT \ NAntTest \ build yolunu veriyor ve C: \ GIT \ NAntTest özelliğini bir özellik olarak istiyorum, böylece tüm göreli URL'lerim için bir başlangıç ​​bloğu olarak kullanabilirim – samaspin

+0

BAMBAM - Oh tam çözümü istiyorsanız yol! Anladım. (projenin çözüme göre olduğu varsayılarak). –