2013-09-02 19 views
175

Bir Delphi XE projesine IDE aracılığıyla eklediğim ve Proje Yöneticisi'nin içerik menüsünden etkinleştirdiği bir özel MSBuild .targets dosyası oluşturdum. Dosya doğrulansa da, proje dosyasını yeniden kaydettikten sonra her zaman devre dışı kalır.Delphi XE özel yapı hedefi her zaman devre dışı bırakıldı

Custom.targets adlı hedef dosyalarının basitleştirilmiş bir sürümü. Bu beklendiği gibi çalıştığını bağımsız bir dosya olarak

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="Hello"> 
    <Message Text="Hello from custom target"/> 
    </Target> 
</Project> 

: Komut satırında yazarak ...
MSBuild Custom.target /t:Hello 

...

beklenen mesajı verir. ... beklendiği gibi IDE üzerinden bir Delphi projesine Custom.targets ekleme

Proje Yöneticisi dosyayı görüntüler ve .dproj dosyası şimdi satırı içerir

Ben IDE en dosyayı sağ tıklandığında

<TargetsFile Include="Custom.targets"/> 
Proje Yöneticisi ve Enable seçildi. Proje Build mesaj vitrin inşa edildiğinde Ama:

[MSBuild Uyarı] Custom.targets (1): Engelli ithalat göz ardı edilmesi: PathToProjectSource\\Custom.targets

Proje Yöneticisi yine sağ tıklanması hala gösterir Beklenen Disable yerine Enable seçeneği.

MSBuild ProjectName.dproj /t:Hello komut satırında da başarısız. MSBuild ProjectName.dproj /t:Hello Yazma

çizgiyi eklemek için .dproj dosyayı hack denedim

...

<Import Project="Custom.targets"/> 

şimdi çalışır. Ama bir dahaki sefere IDE'den proje dosyasını kaydettiğimde <Import> ifadesi kaldırılıyor.

Neyin yanlış gittiğine dair bir fikrin var mı lütfen?

+10

sen ise her yerde _Custom.target_ göstermek başka _Custom.targets_ kullanın. Hangisi? –

+4

İyi nokta - Çok fazla kodlara rağmen dikkat etmemiştim. Delphi ile bir makineye birkaç günlüğüne (hastanede!) Ulaşamıyorum, ancak mümkün olduğunda sürekli olarak "hedef" veya "hedefler" kullanarak kodu deneyeceğim. – delphidabbler

+6

Bir Delphi kullanıcısı değil, [this] 'a göre (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/targetsfiles_xml.html) _All .targets dosyaları geçerli bir MSBuild betiği içermelidir hatasız.Dosyada herhangi bir hata varsa, size bildirilir ve proje geçersiz .targets dosyasına başvuruda bulunursa, devre dışı bırakılır ve hatalar düzeltilene kadar yeniden etkinleştirilemez. aldığın belirtiler. –

cevap

1

Delphi, tüm dproj içeriğini kendisi oluşturur ve bu özel içe aktarma her zaman silinir.

Kendi msbuild xml dosyalarını yazabilirsiniz, ancak dproj Delphi'ye aittir. Kaynak kodunuz yoksa veya maymun yama yapmak istemiyorsanız, bunu yapamazsınız. Eğer gerçekten Delphi projeleri oluşturmak ve hedefler istiyorum deneyin ya vnext (bitbucket benim çatal) istemek bolca oluşturmak için esnek xml şekilde istiyorsanız komut ile msbuild kullanarak sizin örnekte