首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用.NET CLI搭建我的控制器?

是否可以使用.NET CLI搭建我的控制器?
EN

Stack Overflow用户
提问于 2017-02-12 02:16:32
回答 3查看 2K关注 0票数 0

我正在https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model上学习https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model的核心教程。我在搭建一个Controller部分,并试图从我的模型/DB上下文中创建一个控制器。但是,当我按照指南中描述的说明执行时,我会收到以下错误:

我试着恢复NuGet包并创建一个新项目,但我仍然得到相同的错误。是否有一种使用.NET CLI搭建控制器的方法?我以前从没见过,所以我自己也不知道怎么写。

谢谢!

编辑:,我刚刚尝试了@Praful8495的答案,并按照他的指示修改了我的项目文件。上面的错误不再弹出,但现在我碰到了其他的错误:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-12 02:44:45

对于基于csproj的ASP.NET核心项目,您需要确保存在以下引用(针对1.0.x版本的ASP.NET Core)

代码语言:javascript
运行
复制
<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>

(针对1.1.x版本的ASP.NET Core的项目)

代码语言:javascript
运行
复制
<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
票数 2
EN

Stack Overflow用户

发布于 2017-02-12 06:27:52

如果您正在使用project.json,那么请遵循此方法。

要使用代码生成器包,首先需要将其包括在project.json中,如下所示-

代码语言:javascript
运行
复制
"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,如官方指南所示)搭建控制器和视图-

代码语言:javascript
运行
复制
dotnet aspnet-codegenerator --project . controller -name HelloController -m Author -dc WebAPIDataContext

上面的命令将在根目录中生成名称为HelloController的控制器,并在视图文件夹下的Hello文件夹中生成CRUD选项视图。请注意,上面的示例命令将帮助您使用模型和EF创建具有读写操作的Controller。如果没有模型或dbcontext,它将创建空控制器。您可以在控制器参数之后使用--help命令行开关来获得有关控制器生成器的更多选项。

票数 0
EN

Stack Overflow用户

发布于 2019-10-17 12:27:42

可以使用以下命令搭建控制器的支架

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42183532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档