我正在使用 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中不起作用。
答案 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>