2011-11-09 10 views
10

Bu yüzden bir çok projeli VS Şablonunu (Visual Studio proje şablonu) değiştiriyorum ve alt şablonlar tarafından kullanılacak kök şablonunda bir Özel Parametre ayarlamak istiyorum . Ancak, mevcut bir parametreye göre ayarlamak istiyorum.VSTemplate'de değerlendirilen bir Özel Parametre nasıl oluşturulur

Yani, örneğin, bu iyi çalışır: olması gerektiği gibi

<CustomParameter Name="$FaultProject$" Value="MyProject.FaultContracts"/>

değişken $ FaultProject $

, MyProject.FaultContracts ile değiştirilir.

<CustomParameter Name="$FaultProject$" Value="$safeprojectname$.FaultContracts"/>

Ben $ safeprojectname $ doğru değeriyle değiştirilir bekliyoruz ama değil:

Ancak, bu işe yaramaz. Bunun yerine, $ FaultProject $ değişkeninin yerini $ safeprojectname $ .FaultContracts almıştır. $ Safeprojectname $, parametresi yerine bir literal olarak yorumlanır.

<ProjectTemplateLink ProjectName="$safeprojectname$.FaultContracts">WCFFaultContract\FaultContract.vstemplate</ProjectTemplateLink>

Herhangi bir fikir yararlı olacaktır:

Bu beklendiği gibi aynı dosyada, bu tam çalışır olmasına rağmen böyledir. Bunu yapabilecek bir IWizard sınıfı yazabileceğime inanıyorum, ancak mümkünse böyle basit bir işlevden kaçınmayı tercih ederim.

Alternatif olarak, root şablonunun $ safeprojectname $ değerinin değerini içeren bir parametre alabilirsem, bu da benim ihtiyacımı ele alır (alt şablonlarda $ safeprojectname $ alt projenin adı olarak değiştirilir, root şablonunda sahip olduğu değer değil).

+3

Bu sorunu nasıl çözeceğinizi anladınız mı? –

+3

Hayır, iyi bir cevap bulamadım. Yukarıda gördüğüm gibi, bir IWizard arayüzü yazmam gerekecek. Proje son tarihlerinin, sadece proje ve çözüm dosyalarını manuel olarak düzenlemek, IWizard çözümünü yazmaktan daha hızlı olduğu anlamına geldiğinden, daha sonra geri dönmem gerekecek. Eninde sonunda ortaya çıkacağım (ilk etapta bütün şablonlar). Çalışmam için ekibimin tüm makinelerinde ek bir özel kod parçasına sahip olmasına gerek kalmadan bunu çözecek bir çözüm bulunmasını diliyorum, ama bu benim de bıraktığım şey. –

cevap

1

Çok projeli bir şablonda, temelde değiştirme parametreleri yalnızca proje düzeyinde olabilir. Kök şablonu çözüm seviyesindedir ve temelde $ safeprojectname $ değerine sahip olamazsınız. Ancak, IWizard arabirimini uygulayabilir ve verdiğiniz değerlerle değiştirilmiş kendi değiştirme parametrelerinize sahip olabilirsiniz.