Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc
Titulní Blogy Fotky Soubory

2P.Knowledge.Blog.API

Centralizace nastavení assembly

Práce na větších aplikacích s sebou nese řadu menších či větších problémů. Takovéto aplikace je totiž obvykle dobré rozdělit na několik assembly, což znamená mít několik projektů v solution Visual Studia. Jedním z možných problémů je zajištění společných vlastností těchto assembly, které tvoří naši aplikaci.  Atributy definující vlastnosti assembly jakými jsou mimo jiné verze assembly či název výrobce, jsou standardně umísťovány v souboru AssemblyInfo.cs ve složce Properties daného VS projektu. Vážou se tedy pouze k assembly vyprodukované kompilací zdrojových kódů VS projektu .

Často ovšem chceme, aby všechny assembly měli po kompilaci například stejnou verzi či zmiňovaného výrobce nebo jakékoliv jiné společné vlastnosti. V případě, že je naše solution tvořena dvěma projekty, tak to zase takový problém není, ovšem problém nastává v případě, kdy je potřeba sjednotit některé vlastnosti pro 20 projektů, což u solution větších aplikací není zase tak nezvyklé. V tom případě se udržování těchto společných vlastností pomocí souborů AssemblyInfo.cs stává jaksi nepohodlné dalo by se označit za takovou "opičí" práci.

Existuje ovšem poměrně jednoduchý způsob, jak mít všechny společné vlastnosti na jednom místě a opici si tedy nechat akorát tak na rána po předchozích hospodských večerech. Tomuto způsobu se někdy říká SolutionInfo pattern a spočívá v tom, že se vytvoří jeden soubor obsahující atributy pro společné vlastnosti všech assembly aplikace a tento soubor je následně nalinkován do všech projektů v solution.

Postup je tedy následující:

  1. Vytvořte soubor SolutionInfo.cs (název může samozřejmě být i jiný), do kterého pomocí atributů nadefinujte společné vlastnosti pro celou aplikaci.
    Příklad souboru SolutionInfo.cs :

    using System.Reflection;

    [assembly: AssemblyVersion("2.0.0.0")]
    [assembly:
    AssemblyFileVersion("2.0.0.0")]
    [assembly:
    AssemblyCompany("Petr Pus Comany")]
    [assembly:
    AssemblyProduct("Muj velky projekt")]

  2. Ze souborů AssemblyInfo.cs smažte všechny atributy, které jsou centralizovány v souboru SolutionInfo.cs
  3. Do jednotlivých projektů v solution nalinkujte soubor SolutionInfo.cs (Kontextová nabídka na VS projektu>Add>ExistingItem..>Add as link)

Pak by měla vaše solution vypadat nějak takto..

Můžete jít v aplikaci tohoto postupu ještě dále a vytvořit jeden soubor pouze na určení společné verze všech assembly (např. SolutionVersion.cs) a v souboru SolutionInfo.cs uvést ostatní společné vlastnosti, ale to už nechám na vás. Doufám, že tímto postupem ušetříte svůj, jistě drahý, čas Wink

Zveřejněno 10. října 2007 21:17 by Puschak
Vedeno pod:

Komentář

Žádné komentáře
Neregistrovaní uživatele nemužou přidávat komentáře.
Powered by Community Server (Personal Edition), by Telligent Systems
Vyvojar.cz na prodej!