5

Çeşitli projeler içeren bir çözümüm var, bunları ProjectA ve ProjectB olarak adlandıralım. ProjectB'ye atıfta bulunmak için ProjectA'ya ihtiyacım var, ancak "Şablonu Dışa Aktar" ı referans olarak görmüyorum. Yapmaya çalıştığım şey, yeni bir proje oluşturduğumda ve benim girdiğim şeye otomatik olarak ad verdiğimde, benim için referans oluşturmasını sağlamak.Görsel Studio'da Şablonları dışa aktarırken Aynı Çözüm Proje Referanslarını nasıl eklerim?

cevap

1

Bu, salt Visual Studio şablonlarının kapsamı dışında.

Visual Studio şablonları şablonları için değiştirmeler parametrelerini destekler, böylece neler yapabileceğini geçerli:

sizin ProjectA.zip şablon dosyası içinde
  • Proje için şablon ProjectA.csproj yılında
  • olduğunu ProjectA.csproj bulacaksınız olacak bir <ItemGroup><Reference Include="ProjectB">
gibi bir giriş olmalıdır <Reference> girdileri Aralarında
  • içeren bulmak

    ProjectB şablonunuzdan bir proje oluşturduğunuzda, adı kullanıcı tarafından belirlenir, bu nedenle ProjectB'u $Foo$ gibi bir değiştirme parametresiyle değiştirmek istiyorsunuz.

    Bu, saf şablonlar için kapsam dışında kaldığı yer: Görsel stüdyoya $Foo$'u nasıl değiştireceğini nasıl söylüyorsunuz? Ve yedek ne olurdu?

    Burada tek tercihiniz, ProjectB türü bir projeyi arayan veya kullanıcı için soran özel bir sihirbaz kullanmaktır.

    İşte şablonu ve özel sihirbaz geçinmeyi almak için nasıl hatları vardır:

    • bir VSIX paket projesi oluşturun.
    • Paketinize [ProvideBindingPath] özniteliğini eklediğinizden emin olun. Bu kayıtlı özel sihirbaz almak için gereklidir
    • sizin sihirbazı oluşturun (VS bulabilmesi aksi takdirde, GAC yüklemek gerekir), bu Microsoft.VisualStudio.TemplateWizard.IWizard
    • çözümü için şablonu ekleme ve ekleyin uygulamalıdır bir ProjectTemplate varlık olarak paket en vsixmanifest şablonunuzun .vstemplate dosyasında

    , <TemplateContent> bloğun altında aşağıdaki pasajı ekleyin:

    <WizardExtension> 
        <Assembly>Your.Packages.Assembly</Assembly> 
        <FullClassName>Your.Wizard</FullClassName> 
    </WizardExtension> 
    

    sizin wizar getirecektir Proje oluşturulduğunda d. RunStarted yönteminde, başvuru için soran bir iletişim kutusu getirebilir veya Project123 projesini bulup replacementsDictionary numaralı belgede bulmak için automationObject parametresini (aslında EnvDTE.DTE örneğidir) kullanabilirsiniz.

  • İlgili konular