3

我已经安装 MvcScaffolding 没有任何问题,但是当我尝试执行脚手架请求时,我收到错误“DbContext.Task.t4”不存在以及其他丢失的文件。我有一个名为 Task 的模型,我认为它指的是它,但我不知道如何修复这个错误?

“脚手架控制器任务 -ModelType 任务 -ControllerName TasksController -DbContextType TasksDbContext”

安装包 MvcScaffolding

  • PM> Install-Package MvcScaffolding
  • 正在尝试解决依赖项“T4Scaffolding (≥ 1.0.2)”。
  • 正在尝试解决依赖项“EntityFramework (≥ 4.1.10311.0)”。
  • 成功安装“MvcScaffolding 1.0.2”。
  • 成功将“MvcScaffolding 1.0.2”添加到 MvcApplication1。

错误

  • PM> Scaffold Controller Task -ModelType Task -ControllerName TasksController -DbContextType TasksDbContext

脚手架任务控制器...

Find-ScaffolderTemplate:在文件夹 ['C:\Development\MVCPLTaskmanager\MvcApplication1\packages\T4Scaffolding.1 .0.2\tools\EFDbContext'] 下找不到模板'DbContext.Task.t4'] 在行:1 char:23 + 参数($c, $a) 返回。<<<< $c @a + CategoryInfo : NotSpecified: (:) [Find-ScaffolderTemplate], 异常 + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.FindScaffolderTemplateCmdlet

Get-ProjectType:找不到与名称“MvcApplication1.Models.TasksDbContext”匹配的类型。尝试指定完全限定的类型名称,包括名称空间 ace。在 C:\Development\MVCPLTaskmanager\MvcApplication1\packages\T4Scaffolding.1.0.2\tools\EFDbContext\T4Scaffolding.EFDbContext.ps1:45 char:39 + $foundDbContextType = Get-ProjectType <<<< ($dbContextNamespace + "." + $DbContextType) -Project $Project + CategoryInfo : NotSpecified: (:) [Get-ProjectType], InvalidOperationException + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.GetProjectTypeCmdlet

Invoke-Scaffolder:创建了数据库上下文 TasksDbContext,但在 C:\Development\MVCPLTaskmanager\MvcApplication1\packages\MvcScaffolding.1.0.2\tools\Controller\MvcScaffolding.Controller.ps1:71 char:40 处找不到它作为项目项+ $dbContextScaffolderResult = Scaffold <<<< DbContext -ModelType $foundModelType.FullName -DbContextType $DbContextType -Area $Area -Project $Projec t -CodeLanguage $CodeLanguage -BlockUi + CategoryInfo : NotSpecified: (:) [Invoke-Scaffolder], RuntimeException +fullyQualifiedErrorId:T4Scaffolding.Cmdlets.InvokeScaffolderCmdlet

ANSWER 事实证明,我的模型的命名空间需要与 MVC 项目相同。一旦我更改了命名空间,脚手架就起作用了。

4

1 回答 1

0

我遇到了同样的问题,但这是由于模型类中存在错误,导致它们无法构建。因此,没有与我给脚手架起的名称相匹配的模型,它得出的结论是我没有使用正确的命名空间。

所以...

  • 检查您的代码是否存在构建错误
  • 确保模型的命名空间是应用程序的命名空间
于 2013-12-05T23:01:30.523 回答