I'll soon merge a change to the templatebindings format into the core code. The change doesn't affect any current templatebindings files, it's backwards compatible.
The problem
Say you want to have a SQL producing .lpt template. You decide to write it in C#. This means that the target language is SQL. So you define the language SQL (if it's not defined yet) and add a templatebinding under SQL for your template.
It won't compile. The current problem is that the DotNetTemplateEngine checks the target language set which compiler to pick. For templates which are meant to be ran during a normal code generation cycle with the TDL templates, that's not a problem. However it is when you want to write a different set of templates which consume the project meta-data but emit HTML, SQL or in another target language.
Solution
An optional attribute will be added to the templateBinding tag in a templatebindings file: templateLanguage="". This attribute is optional, which means, it can be left out. If it's not specified, the value for it will be the same as the language the binding is defined under. If it is defined, the language specified will be used to select the compiler for the template. If the template is a TDL template, the attribute value is ignored completely, as these templates always use TDL template and are interpreted.
This change can be added rather painlessly to the code, and is required for TemplateStudio v2, so I'll add support for it a.s.a.p.. It's a clear oversight, but fixable with this optional attribute.
It also has the benefit that you can write .lpt templates in VB.NET to emit C# and vice versa, something not very common perhaps, but it could be necessary.
Limitations
Per language specification, you can have 1 template language for .lpt templates: either C# or VB.NET. This is because the .lpt templates are all compiled into a single assembly. Having two assemblies (potentially) has complications for the TDL interpreter as well and where to find which templateID so for now this is limited to one language. This limit is not that harsh however: it will be very rare that there are templates for the same target language which are sometimes written in C# and sometimes in VB.NET: often a single language is chosen.