是否可以使用 .NET CLI 构建我的控制器?
Is it possible to scaffold my controller using the .NET CLI?
我正在学习 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model 上的 ASP.NET 核心教程。我正在阅读 搭建控制器的脚手架 部分,我正在尝试从我的 model/DB 上下文中创建一个控制器。但是,当我按照指南中的说明进行操作时,我收到此错误:
我尝试恢复 NuGet 包并创建一个新项目,但我仍然遇到同样的错误。有没有办法使用 .NET CLI 搭建控制器?没看过,不知道怎么写。
谢谢!
编辑: 我刚刚尝试了@Prafull8495 的回答并按照他的指示修改了我的项目文件。上面的错误不再弹出,但现在我在打别的东西:
对于基于 csproj 的 ASP.NET 核心项目,您需要确保存在以下参考资料(针对 ASP.NET 核心的 1.0.x 版本)
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.0.0-msbuild3-final" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
</ItemGroup>
(针对 ASP.NET Core 的 1.1.x 版本的项目)
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0-msbuild3-final" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
</ItemGroup>
请注意,Microsoft.VisualStudio.Web.CodeGeneration.Tools
包的版本在这两种情况下保持不变。
还要确保项目中未将以下包作为 PackageReference 引用
- Microsoft.VisualStudio.Web.CodeGenerators.Mvc
- Microsoft.VisualStudio.Web.CodeGeneration.Tools
如果您使用的是project.json,请遵循此方法。
要使用代码生成器包,首先您需要像这样将它包含在 project.json
中-
"dependencies": {
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview2-final",
"type": "build"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
}
现在您可以使用 dotnet restore
命令恢复包。完成后,您可以使用以下命令搭建控制器和视图(或来自Visual Studio,如官方指南所示)-
dotnet aspnet-codegenerator --project . controller -name HelloController -m Author -dc WebAPIDataContext
以上命令将在根目录中生成名为 HelloController 的控制器,并在 Views 文件夹下的 Hello 文件夹中生成 CRUD 选项视图。请注意,上面的示例命令将帮助您使用模型和 EF 创建具有读写操作的控制器。没有模型或 dbcontext,它将创建空控制器。您可以在控制器参数后使用 --help
命令行开关来获取有关控制器生成器的更多选项。
可以使用以下命令搭建控制器
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet tool install --global dotnet-aspnet-codegenerator
dotnet aspnet-codegenerator controller -name TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir Controllers
我正在学习 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model 上的 ASP.NET 核心教程。我正在阅读 搭建控制器的脚手架 部分,我正在尝试从我的 model/DB 上下文中创建一个控制器。但是,当我按照指南中的说明进行操作时,我收到此错误:
我尝试恢复 NuGet 包并创建一个新项目,但我仍然遇到同样的错误。有没有办法使用 .NET CLI 搭建控制器?没看过,不知道怎么写。
谢谢!
编辑: 我刚刚尝试了@Prafull8495 的回答并按照他的指示修改了我的项目文件。上面的错误不再弹出,但现在我在打别的东西:
对于基于 csproj 的 ASP.NET 核心项目,您需要确保存在以下参考资料(针对 ASP.NET 核心的 1.0.x 版本)
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.0.0-msbuild3-final" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
</ItemGroup>
(针对 ASP.NET Core 的 1.1.x 版本的项目)
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0-msbuild3-final" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
</ItemGroup>
请注意,Microsoft.VisualStudio.Web.CodeGeneration.Tools
包的版本在这两种情况下保持不变。
还要确保项目中未将以下包作为 PackageReference 引用
- Microsoft.VisualStudio.Web.CodeGenerators.Mvc
- Microsoft.VisualStudio.Web.CodeGeneration.Tools
如果您使用的是project.json,请遵循此方法。
要使用代码生成器包,首先您需要像这样将它包含在 project.json
中-
"dependencies": {
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview2-final",
"type": "build"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
}
现在您可以使用 dotnet restore
命令恢复包。完成后,您可以使用以下命令搭建控制器和视图(或来自Visual Studio,如官方指南所示)-
dotnet aspnet-codegenerator --project . controller -name HelloController -m Author -dc WebAPIDataContext
以上命令将在根目录中生成名为 HelloController 的控制器,并在 Views 文件夹下的 Hello 文件夹中生成 CRUD 选项视图。请注意,上面的示例命令将帮助您使用模型和 EF 创建具有读写操作的控制器。没有模型或 dbcontext,它将创建空控制器。您可以在控制器参数后使用 --help
命令行开关来获取有关控制器生成器的更多选项。
可以使用以下命令搭建控制器
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet tool install --global dotnet-aspnet-codegenerator
dotnet aspnet-codegenerator controller -name TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir Controllers