none
Jak nastavit deploy shared assembly/componenty do všech vývojářských, testovacích a produkčních prostředí

    Dotaz

  • Ve firmě používáme v mnoha projektech/solutionách několik vlastních komponent, které se stále vyvýjí. Dosud jsme postupovali tak, že pomocí jedné synchronizované složky (pomocí utility Live Mash) nahrávame všechny .dll soubry těchto komponent/knihoven a odsud je referencujeme do všech projektů. Toto řešení bylo dočasné a nouzové dokud nepřijdeme na způsob jak to dělat lépe. Má mnoho nevýhod počínaje tím, že projekt si cestu k těmto .dll knihovnám ukládá relativně, takže se při verzování projektových souborů tyto informace poškozují. Navíc knihoven začína přibývat a začína být problém s jejich verzemi apod.
    Řešení bych si představoval buďto nějakým mechanizmem integrovaným v TFS2010 pro globální GAC, platným pro všechny klientské stanice v doméně, toto řešení jsem dlouho hledal, ale bez úspechu.
    Další řešení mě napadlo využít ClickOnce deployment a tyto shared library referencovat přes něj, pak při Check-inu po změnách té dané knihovny provést automatický Build s deploynutím na ClickOnce. Bohužel jsem ale zjistil, že ClickOnce toto nepovoluje.
    Napada někoho jak tento problém vyřešit?

    Pro upřesnění příklad:
    Mám shared knihovnu ASP.NET Serverových kontrolek Controls.dll
    Ta je referencována z 5ti webových projektů, které ji využívají, tyto projekty jsou stále živé a vyvýjejí je vývojáři, testují se na testovacím prostředí a běží i v produkčním prostředí.
    V knihovně Controls.dll se objeví chyba, tuto chybu odpovědný vývojář opraví a zaverzuje.
    V současné době musí vývojář novou verzi této knihovny nahrát do sdílené složky, upozornit kolegy na tuto skutečnost a všechny projekty, které ji referencují se musejí otevřít, překompilovat, přetestovat pomocí unittestů(duplicitně, protože knihovna Controls.dll má své unittesty, tak aby se jeji chování navenek neměnilo) a znovu nasadit na testovací a produkční servery.
    Chtěl bych tedy nastavit aby po check-inu změn na Control.dll proběhl deploy této knihovny(pomocí automatického buildu v případě, že se zdaří a projdou testy) na všehny vývojářské, testovací a produkční stroje přimo do jejich GAC.

     

    úterý 15. června 2010 15:11

Odpovědi