Power Tools: Reverse engineer does not honor registered T4 processors


The VS and command line hosts for the T4 processor allow registering custom directives that can be processed by types registered under HKLM\Software\Microsoft\VisualStudio\$(shellversion)\TextTemplating\DirectiveProcessors (found under HKLM\Software\Wow6432Node in 64 bit machines).

Apparently the way we run T4 templates in the EF PowerTools, e.g. for reverse engineering of a database into Code First classes does not honor registered processors. This could affect any directive either we add in our .ttinclude files or any directive that customers using custom templates want to add.
Closed Dec 13, 2016 at 7:58 PM by RoMiller
EF Team Triage: We are transitioning this project to GitHub (https://github.com/aspnet/EntityFramework6). As part of this transition we are bulk closing a large number of issues in order that our new issue tracker will accurately reflect the work that our team is planning to complete on the EF6.x code base.

Moving forwards, our team will be fixing bugs, implementing small improvements, and accepting community contributions to the EF6.x code base. Larger feature work and innovation will happen in the EF Core code base (https://github.com/aspnet/EntityFramework). Closing a feature request in the EF6.x project does not exclude us implementing the feature in EF Core. In fact, a number of popular feature requests for EF have already been implemented in EF Core (alternate keys, batching in SaveChanges, etc.).

This is a bulk message to indicate that this issue was closed and not ported to the new issue tracker. The reasons for not porting this particular issue to GitHub may include:
  • It was a bug report that does not contain sufficient information for us to be able to reproduce it
  • It was a question, but sufficient time has passed that it's not clear that taking the time to answer it would provide value to the person who asked it
  • It is a feature request that we are realistically not going to implement on the EF6.x code base
    Although this issue was not ported, you may still re-open it in the new issue tracker for our team to reconsider (https://github.com/aspnet/EntityFramework6/issues). We will no longer be monitoring this issue tracker for comments, so please do not reply here.


ajcvickers wrote Oct 30, 2012 at 6:30 PM

This will probably get done in One EF.

BriceLambson wrote Dec 13, 2012 at 7:32 PM

A one-off fix for the CleanupBehavior directive was committed by DavidObando on Nov 29, 2012. Commit e0a18055c830.

jmanning wrote Dec 13, 2012 at 9:28 PM

Any chance an updated vsix of the power tools can make it out to the extension feed?

Reverse engineer fails for multiple users (see the VS gallery page) after installing VS 2012 Update 1, and building/installing a vsix from current repo source works great (I guess due to one-off fix for CleanupBehavior from David that Brice mentioned?)


BriceLambson wrote Dec 17, 2012 at 5:30 PM

@jmanning, Yes, we're working on getting the current bits published to the VS gallery. Until then, Rowan has documented a workaround in the Beta 2 post's comments on our blog: http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx#10374587

RoMiller wrote Jan 21, 2013 at 5:33 PM

Moving back to proposed per Brice's suggestion
The underlying bug here hasn’t actually been fixed. We only hacked around the one that was breaking our default templates. If the user customizes their .tt files and adds any other custom directive, we will still break. I recommend re-opening this bug since it will need to fixed as part of the OneEF feature if we use the existing Power Tools code.