Teamcity è un ottimo prodotto gratuito (con limitazioni, ma molto ampie) che risolve brillantemente il problema della Continuous Integration, senza spostarsi su prodotti più articolati come TFS, che per molti clienti è fuori portata.
Lo uso abitualmente in congiunzione con SVN: formano un’accoppiata molto stabile, e non mi danno praticamente nessun problema.
Ogni tanto, però, la build si rompe per misteriosi motivi, soprattutto usando Umbraco. Come premessa, in tutte le solution che hanno umbraco come website ho disabilitato la compilazione del website, perchè ci mette un sacco. Quindi, l’unico modo per assicurarsi che tutto funzioni correttamente e fare un “publish” manuale del website prima di committare le modifiche. Mi è successo con l’AjaxControlToolkit, che la build si rompesse comunque, in progetti complessi con altre web application oltre ad Umbraco, indipendentemente dal fatto che il publish fosse eseguito con successo.
L’errore era: [exec] Nomecontrollo.ascx.designer.cs(23,27): error CS0400: The type or namespace name 'AjaxControlToolkit' could not be found in the global namespace (are you missing an assembly reference?)
Il motivo era che, per errore, la DLL dell’ajax control toolkit referenziata era quella in GAC, non quella nella cartella apposita sotto SVN che contiene le dll referenziate di terze parti. E’ bastato cambiare la referenza al percorso giusto, ed il problema è rientrato. In alternativa, si sarebbe potuto anche installare l’AjaxControlToolkit, ma non era una soluzione che mi piaceva molto, non essendo il server sotto la nostra giurisdizione.