ASP.NET MVC6脚手架在BETA 8中不起作用

时间:2015-11-10 12:43:38

标签: asp.net-core asp.net-core-mvc

我正在使用 ASP.NET Beta 8 试图让脚手架工作但是它遇到了 Microsoft.Framework.CodeGeneration

的问题

我的project.json

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands",
    "gen": "Microsoft.Framework.CodeGeneration"
  },

命令:

dnx gen controller -Name ModelClassName--datacontext MyDbContext --model ModelClassName

错误:

dnx : Error: Unable to load application or execute command 'Microsoft.Framework.CodeGeneration'. Available commands: web, ef, gen.

此软件包在Nuget上,但尚未针对Beta 8进行更新。

只有版本为Beta 5. Link

当我安装此Beta 5软件包时

  

Install-Package Microsoft.Framework.CodeGeneration -Pre

并运行相同的脚手架命令我收到错误:

  

无法解析“Microsoft.Framework.Runtime.ILibraryManager”类型的服务

这让我觉得脚手架在Beta 8中不起作用。

5 个答案:

答案 0 :(得分:5)

对于所有使用rc1-final只需将命令中的命名空间更改为

" gen":" Microsoft.Extensions.CodeGeneration"

答案 1 :(得分:0)

Beta 5软件包不应与Beta 8混合使用。

此软件包似乎尚未更新,这意味着此代码在技术上已死亡和/或已合并到另一个DNX项目中。我在ILibraryManager命名空间中看到了Microsoft.Extensions.PlatformAbstractions

正如我的评论所说,你可能有版本不匹配。确保专门使用1.0.0-beta8包(否1.0.0-*)。我会使用beta8执行File > New Project并检查gen命令在新模板中使用的内容。

答案 2 :(得分:0)

在Visual Studio 2015中,您应该添加指向aspnetmaster的包源。

转到工具 - >选项 - > NuGet包管理器 - >包源 无论你喜欢什么,都可以添加一个新的包名。 mygetv3设置源代码 https://www.myget.org/F/aspnetmaster/api/v3/index.json

将它放在列表中的第一位。

在project.json中 - > "依赖性"添加" Microsoft.Framework.CodeGenerators.Mvc":" 1.0.0-beta8" 和"命令"添加" gen":" Microsoft.Framework.CodeGeneration"

现在您可以像在beta5 ex。中那样使用它:

dnx gen controller -name NameController --dataContext DbContext --model ModelName -l _Layout -f

答案 3 :(得分:0)

工作脚手架并未包含在BETA 8中。它在RC1中再次修复

答案 4 :(得分:0)

在rc-update1中,命名空间已更改:

FROM: Microsoft.Framework.CodeGeneration

TO: Microsoft.Extensions.CodeGeneration

因此,只需将Microsoft.Framework.CodeGeneration添加到project.json

,而不是安装Microsoft.Extensions.CodeGenerators.Mvc

<强> project.json

"dependencies": {
...
"Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
}

"commands": {
...
"gen": "Microsoft.Extensions.CodeGeneration"
}

自定义MVC6脚手架模板

要自定义MVC6脚手架模板,您可以在以下文件夹中找到它们:C:\ Users \ {user} .dnx \ packages \ Microsoft.Extensions.CodeGenerators.Mvc \ 1.0.0-rc1-final \ Templates

要创建项目特定的模板集,只需将Templates文件夹复制到项目的根文件夹(即与project.json相同的文件夹),当您使用dnx gen scaffolding时,它将使用这些本地自定义模板< / p>