T4脚手架不适用于Visual Studio 2015

Nic*_*ady 10 powershell envdte t4scaffolding visual-studio-2015

我已经创建了一个T4脚手架模板库,我在Visual Studio的早期版本中已成功使用,但现在已将我的项目升级到VS 2015,打开"Package Manager Console"时出现以下错误:

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\MyPath\packages\T4Scaffolding.1.0.8\tools\init.ps1:7 char:1
+ Set-DefaultScaffolder -Name Repository -Scaffolder T4Scaffolding.EFRe    ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
+ FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet
Run Code Online (Sandbox Code Playgroud)

似乎EnvDTE.DTE可能不再支持开箱即用了?

无论如何解决这个问题还是在VS 2015中有一个可以运行我现有的T4模板文件的新机制.

我的项目建立并运行良好.

Dav*_*son 9

FIX:

  1. 如果已安装所有3个软件包,请将其卸载
  2. 在NuGet Package Manager中搜索"MvcScaffolding.VS2015"并将其添加到项目中
  3. 重新启动Visual Studio,启动程序包管理器控制台时的错误将消失.

为了您的兴趣,可以在此处找到新的包:

如果您只是安装MvcScaffolding包,其他包将被拉过.希望这有助于尼克.如果这可以解决您的问题,请标记为已回答.

-------------------------------------------------- --------------------------------

附加信息:我收到了Steve Sanderson的电子邮件(T4Scaffolding/MVC Scaffolding的主要作者之一):

我担心不再支持或维护MvcScaffolding/T4Scaffolding,因为它们在几年前被ASP.NET脚手架功能所取代.

如果有帮助,MvcScaffolding/T4Scaffolding的来源位于https://mvcscaffolding.codeplex.com/.

有两种选择:

  1. 将现有脚本移植Asp.Net Scaffolding
  2. 获取MvcScaffolding和T4Scaffolding的源代码,修复VS2013及以上版本引入的bug.