脚手架控制器与Mvc5,EF6,VisualStudio的2013库 [英] Scaffolding controllers with repositories in Mvc5, EF6, VisualStudio 2013

本文介绍了脚手架控制器与Mvc5,EF6,VisualStudio的2013库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在vs2012我用史蒂夫·桑德森的mvcScaffolding 用这个包,我可以脚手架操作方法与单元测试和控制器与仓库和依赖注入。
我的问题很简单。有没有办法在vs2013这样做呢?
当我在vs2013安装包我得到以下错误:

 设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ T4Scaffolding.Core.1.0.0 \\工具\\ init.ps1:50字符:9
+设置DefaultScaffolder -Name CustomTemplate -Scaffolder T4Scaffolding.Cus ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ T4Scaffolding.Core.1.0.0 \\工具\\ init.ps1:51字符:9
+设置DefaultScaffolder -Name CustomScaffolder -Scaffolder T4Scaffolding.C ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ T4Scaffolding.1.0.8 \\工具\\ init.ps1:6字符:1
+设置DefaultScaffolder -Name的DbContext -Scaffolder T4Scaffolding.EFDbContext - 硅胶...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ T4Scaffolding.1.0.8 \\工具\\ init.ps1:7字符:1
+设置DefaultScaffolder -Name库-Scaffolder T4Scaffolding.EFRepository -S ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ MvcScaffolding.1.0.9 \\工具\\ init.ps1:47字符:1
+设置DefaultScaffolder -Name控制器-Scaffolder MvcScaffolding.Controller - 所以...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ MvcScaffolding.1.0.9 \\工具\\ init.ps1:48字符:1
+设置DefaultScaffolder -Name查看-Scaffolder MvcScaffolding.Views -SolutionWide ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ MvcScaffolding.1.0.9 \\工具\\ init.ps1:49字符:1
+设置DefaultScaffolder -Name行动-Scaffolder MvcScaffolding.Action -SolutionWi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ MvcScaffolding.1.0.9 \\工具\\ init.ps1:50字符:1
+设置DefaultScaffolder -Name的UnitTest -Scaffolder MvcScaffolding.ActionUnitTest - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet设置DefaultScaffolder:无法获取EnvDTE.DTE的一个实例
在C:\\ dev的\\ WebApplication2 \\包\\ MvcScaffolding.1.0.9 \\工具\\ init.ps1:54字符:1
+设置DefaultScaffolder -Name查看-Scaffolder $ viewScaffolder -SolutionWide -DoNo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:NotSpecified:(:) [设置DefaultScaffolder],出现InvalidOperationException
    + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet


解决方案

我们正在向脚手架一个新的系统,但现在,运行VS作为管理员,并使用此 - pre版本,我们已经更新:

安装封装MvcScaffolding -Version 1.0.8-vs2013 - pre

我会在博客中引用。

In vs2012 I used to use Steve Sanderson's mvcScaffolding Package with this package I could scaffold Action Methods with unit tests and controllers with repositories and dependency injection. My question is simple. Is there a way to do so in vs2013? When I install the package in vs2013 I get the following errors:

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

解决方案

We are moving to a new system for Scaffolding, but for now, run VS as admin and use this -pre version we've updated:

Install-Package MvcScaffolding -Version 1.0.8-vs2013 -Pre

I'll blog this.

这篇关于脚手架控制器与Mvc5,EF6,VisualStudio的2013库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆