Per chi come noi utilizza in Visual Studio template T4 per generare automaticamente codice sorgente e si ritrova a creare o modificare template giá pronte (nel nostro caso template oggetti Entity Framework POCO) ma ha bisogno di una mano nel debugging di complesse sequenze di codice T4 bastano poche accorteze per riuscirci. Basta cambiare la proprietá debug del prima riga del template da false a true per garantirsi la visione/ispezione dei sorgenti durante il debug:
<#@ template language="C#" debug="true" hostspecific="true"#>
il passo successivo è inserire una istruzione di Break del debugger nel punto interessato:
<#System.Diagnostics.Debugger.Break();#>
Prima di eseguire (anche solo salvando) il template è necessario effettuare un attach della sessione corrente di Visual Studio da un'altra istanza di Visual Studio. In caso contrario Visual Studio andrá in errore chiudendosi "malamente" costringendovi a ricaricarlo. Ovviamente risulterá essere particolarmente noioso se oltre al template al momento dell'errore avete altri sorgenti non salvati in sessione perché andranno irrimediabilmente perduti ...
Per evitare noie di questo tipo e per garantirsi che il BreakPoint venga raggiunto soltanto nel caso in cui Visual Studio sia stato effettivamente "agganciato" é possibile cambiare lo statement precedente nel seguente:
<# if(System.Diagnostics.Debugger.IsAttached) /*break only if attached =DG=*/ System.Diagnostics.Debugger.Break();#>
Ho provato il tutto con VS2010 ma sono certo che vada bene anche con VS2008
Giuseppe