.NET Core Web Application 中,从Nuget添加 Web.CodeGeneration.Tools 报错的问题

本文介绍如何解决在.NET Core Web应用中添加MVC Controller时遇到的问题,包括配置Scaffolding CLI工具、修改项目文件及命名空间冲突的解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



用VS2017新建了一个空的.NET Core Web Application,先从Nuget添加了Microsoft.AspNetCore.Mvc,在Startup.cs类中也添加了MVC注入services.AddMvc()。如下图:



然后,在项目中添加了一个名为Controllers的文件夹。接下来,添加Controller类的时候出错了。先让选择添加的类型,我选择了最小依赖。如下图:



之后,在Controllers文件夹上右键添加Controller的时候,没有成功。报如下错误:

---------------------------
错误

运行所选代码生成器时出错:

“No executable found matching command "dotnet-aspnet-codegenerator"”

---------------------------




翻开添加Microsoft.AspNetCore.Mvc时,系统自动生成的一个名为ScaffoldingReadMe.txt的文本文件可以看到

ASP.NET MVC core dependencies have been added to the project.
However you may still need to do make changes to your project.
1. Add Scaffolding CLI tool to the project:
    <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
    </ItemGroup>

所以怀疑是因为没有操作这个第一步才会导致的错误。


可是,在Nuget上搜索 Web.CodeGeneration.Tools 点击安装,又报错,安装不上:

包“Microsoft.VisualStudio.Web.CodeGeneration.Tools 1.0.1”具有一个包类型“DotnetCliTool”,项目“CoreExplorer.WebApplication1”不支持该类型。


解决方法:

在项目名称上右键,选择“编辑*****.csproj”,然后将

<ItemGroup>
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
    </ItemGroup>

复制进去,保存。

这时候再在Controllers文件夹上右键添加Controller就没问题了。


但是我这儿又出现了另外一个问题:



“Controller是命名空间,但此处被当做类型来使用”。Controller类为什么没有引进来呢,求大神指教!

--------- 补充 -------

上面命名空间的这个错误太低级了!是因为我建Controllers文件夹的时候,不小心少输入了一个s,文件夹名成Controller了。虽然后来重命名了,但是命名空间没有变。如上面截图中显示的:namespace CoreExplorer.WebApplicationEmpty.Controller。 把其中的Controller改成Controllers即可。所以要避免类名和命名空间名重复!



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值