Visual studio 2013 Mvc5、EF6、VisualStudio 2013中的脚手架控制器和存储库

Visual studio 2013 Mvc5、EF6、VisualStudio 2013中的脚手架控制器和存储库,visual-studio-2013,asp.net-mvc-scaffolding,entity-framework-6,asp.net-mvc-5,t4scaffolding,Visual Studio 2013,Asp.net Mvc Scaffolding,Entity Framework 6,Asp.net Mvc 5,T4scaffolding,在vs2012中,我曾使用Steve Sanderson的MVCSCapfolding和这个包,我可以用单元测试构建动作方法,用存储库和依赖注入构建控制器。 我的问题很简单。在vs2013中有这样做的方法吗? 在vs2013中安装该软件包时,出现以下错误: Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE At C:\dev\WebApplication2\packages\T4Scaffolding.Core.1.0.0\

在vs2012中,我曾使用Steve Sanderson的MVCSCapfolding和这个包,我可以用单元测试构建动作方法,用存储库和依赖注入构建控制器。 我的问题很简单。在vs2013中有这样做的方法吗? 在vs2013中安装该软件包时,出现以下错误:

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\T4Scaffolding.Core.1.0.0\tools\init.ps1:50 char:9
+         Set-DefaultScaffolder -Name CustomTemplate -Scaffolder T4Scaffolding.Cus ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\T4Scaffolding.Core.1.0.0\tools\init.ps1:51 char:9
+         Set-DefaultScaffolder -Name CustomScaffolder -Scaffolder T4Scaffolding.C ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\T4Scaffolding.1.0.8\tools\init.ps1:6 char:1
+ Set-DefaultScaffolder -Name DbContext -Scaffolder T4Scaffolding.EFDbContext -Sol ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\T4Scaffolding.1.0.8\tools\init.ps1:7 char:1
+ Set-DefaultScaffolder -Name Repository -Scaffolder T4Scaffolding.EFRepository -S ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\MvcScaffolding.1.0.9\tools\init.ps1:47 char:1
+ Set-DefaultScaffolder -Name Controller -Scaffolder MvcScaffolding.Controller -So ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\MvcScaffolding.1.0.9\tools\init.ps1:48 char:1
+ Set-DefaultScaffolder -Name Views -Scaffolder MvcScaffolding.Views -SolutionWide ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\MvcScaffolding.1.0.9\tools\init.ps1:49 char:1
+ Set-DefaultScaffolder -Name Action -Scaffolder MvcScaffolding.Action -SolutionWi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\MvcScaffolding.1.0.9\tools\init.ps1:50 char:1
+ Set-DefaultScaffolder -Name UnitTest -Scaffolder MvcScaffolding.ActionUnitTest - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
At C:\dev\WebApplication2\packages\MvcScaffolding.1.0.9\tools\init.ps1:54 char:1
+ Set-DefaultScaffolder -Name View -Scaffolder $viewScaffolder -SolutionWide -DoNo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

您得到的错误是它无法创建VSIDE的实例(EnvDTE.DTE)。该脚手架包引用的是VS IDE的旧版本,因此它在VS2013中不起作用。该项目必须进行更新,以适当支持VS2013

codeplex项目看起来已经有一段时间没有更新了,所以我的猜测是,除非该项目转移到另一个开源存储库,否则它就死定了

由于ASP.NET现在已经内置了自己的脚手架,我建议现在是转换的时候了。

在命令行中尝试以下操作: cd C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\
devenv.exe/setup“Extensions\Microsoft\Web\Mvc\Scaffolding\Microsoft.AspNet.Scaffolding.Mvc.5.0.dll”

我们正在迁移到一个新的脚手架系统,但现在,以管理员身份运行VS并使用此-我们已更新的预版本:

安装软件包MvcScaffolding-版本1.0.8-vs2013-预安装


我将在博客上发布此消息。

要在VS2013更新4上解决此问题,我必须从所有模块中卸载。\packages directorie删除所有T4*,退出VS

再次输入,并使用来自Wittnest的解决方案,在package manager控制台上执行: 安装软件包MvcMailer-vs2013-pre和voilá,从那以后它的工作


感谢您所做的一切

我知道这是不久前发布的,但是,在使用MvcScaffolding时,我在VS2015中遇到了同样的错误。实际的bug存在于T4Scaffolding.Core包中。我提取了源代码,修复了bug,并上传了带有链接依赖项的新NuGet包。这3个新方案是:

首先卸载MvcScaffolding及其依赖项T4Scaffolding和T4Scaffolding.Core。如果您只需安装该软件包,其他软件包就可以通过。希望这对其他人有帮助


干杯。

从今天起,我也有这个问题。现在,我似乎也无法卸载它。我永远都会收到上面相同消息的一部分。如果您使用VS2013,并且在试图找到让MvcMailer正常工作的确切方法时感到沮丧,请尝试删除所有失败的软件包安装(并可能从您的软件包文件夹中删除下载的软件包[通常与您的解决方案处于同一级别])然后运行上述程序,然后运行VS2013的MvcMailer(安装程序包MvcMailer-VS2013-pre)。至少,这对我来说是可行的,不需要管理员权限(我在工作工作站上没有管理员权限)。。。这会一直持续到vstudio重新启动,此时它会再次消失。不知道为什么。奇怪的