10

我创建了一个 T4 脚手架模板库,我已在以前版本的 Visual Studio 中成功使用过,但现在将我的项目升级到 VS 2015 在打开“包管理器控制台”时出现以下错误:

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

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

有没有办法解决这个问题,或者 VS 2015 中有一个新机制可以运行我现有的 T4 模板文件。

我的项目构建并运行良好。

4

1 回答 1

10

修复

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

为了您的兴趣,可以在这里找到新的软件包:

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

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

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

恐怕 MvcScaffolding/T4Scaffolding 不再受支持或维护,因为几年前它们已被 ASP.NET 脚手架功能所取代。

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

有2个选项:

  1. 将现有脚本移植到Asp.Net Scaffolding
  2. 获取MvcScaffolding和T4Scaffolding的源码,修复VS2013及以上版本引入的bug。
于 2015-08-19T08:32:41.460 回答