2015-09-07 17 views
10

aracılığıyla Builder Dosya çalıştırırken, Windows CMD kullanarak (örneğin myproject.shfbproj için), bir can sıkıcı sorunu olsun: $(SolutionDir)$(ProjectDir) aynı değere sahiptir, Bu, proje dokümantasyon kaynaklarının doğru bir şekilde oluşturulmadığı anlamına geliyor, çünkü zaten $(SolutionDir)'u kullanan özel hedefler ekliyorum.

Tüm Sandcastle Yardım Dosyası Oluşturucusu'nu Visual Studio'dan oluşturursam başarılı bir şekilde oluşturur.

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /p:Configuration=Development myproject.shfbproj 

herhangi bir geçici çözüm bunun için var mı:

Ben (proje saklandığı dizinden yürütülen) aşağıdaki komutu kullanıyorum?

+0

Kullandığınız komut satırı nedir? msbuild myproject.shfbproj? – m0sa

+0

@ m0sa evet ve yapı yapılandırmasını tanımlamak için bir özellik sağlama –

+0

@ m0sa Size tam komutu vermek için Q'umu güncelledim. –

cevap

7

@ M0sa (çok bariz gerçeği işaret olsa ben Sandcastle Yardım Dosyası Oluşturucu projesini inşa ediyorum beri, gerçek bir çözüm dizini yoktur), söz konusu belge, sözde dokümantasyon projesinin bulunduğu bir çözüm oluştururken bir TFS Yapısı sırasında da gerçekleşmiştir. Benim çözüm yana

<PropertyGroup> 
    <SolutionDir>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))\</SolutionDir> 
    </PropertyGroup> 

: dokümantasyon projesi kapsamında inşa edilmesi gerekir her C# projede SolutionDir özellik ekleyerek:

Şimdilik ben pis geçici çözümü kullanarak sorunu çözmek için başardınız Dosya her zaman Sandcastle Yardım Dosyası Oluşturucu projesinin ana dizininde yer alacak, benim durumumda bu geçici çözüm işe yarayacaktır ...

Şimdi belge referans kaynakları olarak sunulan projeler, ortak MSBuild özelliklerini tanımladığım özel bir projeyi alabilir. Görsel olarak Studio oluşturur veya dış olanları:

<Import Project="$(SolutionDir)MSBuild\Common.properties" /> 
14

Çözümünüzü (.sln dosya) oluşturuyorsanız, yalnızca doğru $(SolutionDir)'u edinin. .shfbproj bir proje dosyasıdır ve bu nedenle ana çözümüne bir gönderme yoktur. Açıkça Komut satırında $(SolutionDir) belirterek deneyebilirsiniz: Referans olarak

msbuild /p:Configuration=Development /p:SolutionDir=MySolutionDir myproject.shfbproj 

: http://blogs.msdn.com/b/pfedev/archive/2008/09/26/solutiondir-and-msbuild.aspx

+0

Bunu şanssız denedim. Ben her çözümde, her bir csprojdaki çözümü belirten bir sorun çözdüm. '$ (SolutionDir)' değerine ihtiyacım var .. –

+0

Birkaç dakika içinde geçici çözüm gönderirim ve bunu tartışabilirim ... –

+0

Bu çözüm benim için gayet iyi. – zellus

İlgili konular