Konečně to už umí závislosti projektu

⚠️ Pozor: obrázky z tohoto příspěvku se ztratily při výpadku v roce 2016. Chybějící obrázky nahradí automaticky vtipným placeholderem plugin Broken Image Placeholder.

Konečně to funguje. Naposledy jsem se vám ozval na tomto blogu 8.12., od té doby se toho mnohé stalo..Snažil jsem se to udělat jinak než jsem měl, úplně si rozhodil spací režim(spal jsem více než jsem byl vzhůru,tak dlouho protože to vždy bylo i v zimní bundě, ale teď už to snad bude v pohodě), vypadla mi plomba. Prvně jsem naprogramoval Form který vidíte na obrázku.

Tu mi nefungovalo ladění(program se zastavoval jinde než měl) a to všechno jen proto že jsem měl nastavenou výstupní 32bit konfiguraci na 64bitovém OS. Druhý problém byl že se mi vlastnost ItemCheck vyvolávala vždycky až při druhém zaškrtnutí/odškrtnutí. Nakonec jsem si úplně rozhodil nastavení VC#, protože jsem tam poměnil různé věci, které jsem k tomuto problému našel na netu. Už nevím jak mě to napadlo nebo kde jsem si to přečetl, ale vyresetoval jsem veškeré nastavení VC#, vytvořil jsem si nový projekt, vložil do něj soubory a ono se to rozjelo.

Věc 2) – překvapilo mě že program který v Debugu startoval díky výjimkám skoro minutu v Release najel skoro okamžitě. Problém se kterým jsem se potýkal předtím byl ten že už nevím proč jsem chtěl tu kontrolu zda některé projekty nejsou na sobě vzájemně závislé dělat jen jednou při kompilaci. Žel se mi pořád nedařilo přijít na vhodný srovnávací algoritmus. Nakonec jsem ten algoritmus ve jednodušší podobě udělal v tom formu – pokud se snažíte zaškrtnout projekt, u kterého by v jeho závislostní řadě pak nebylo možno určit který je na kterém závislý, hned vás to upozorní a nedovolí vám to zaškrtnout.

Pak už jsem na metodu která mi ty projekty srovná podle toho jak jsou na sobě závislé přišel a taky jsem jen trochu upravoval příkaz pro kompilaci aby mi uměl zkompilovat libovolné množství projektů. Nakonec jsem si trochu hrál s XML a zjistil jsem že v .NETu nejde použít metoda xpath.Evaluate(“boolean(path)”), musí se zvolit uzel metodou xdoc.SelectSingleNode a pak kontrolovat zda je null.

Přikládám zdrojový kód formu ale moc toho v něm není, ta hlavní logika je jinde, tam je opravdu jen sotva pár řádků. A na co jdu teď? Teď jdu na startovací projekty – tedy které zkompilované exe se mají spustit po úspěšné kompilaci, může to být buď projekt naposledy editovaného souboru/fixně jeden projekt/fixně více projektů. Doufám že nad tím nestrávím celé mládí jak nad těmi závislostmi projektů a problémy které jsem tam musel řešit.

Leave a Reply

Your email address will not be published. Required fields are marked *