Visual Studio 2017中使用/安装MVC Mailer遇Set-DefaultScaffolder错误
解决Visual Studio 2017中MVCMailer脚手架找不到'Mailer.Razor'的问题
嘿,不管你是用MVCMailer 4.0.5还是升级到4.5.0时碰到Set-DefaultScaffolder : Could not find scaffolder 'Mailer.Razor'这个错误,本质都是同一个问题:MVCMailer的脚手架组件没被Visual Studio 2017正确识别注册。下面是几个社区里验证过的有效解决步骤:
1. 先确认装对了NuGet包
很多人会漏掉脚手架专用的MVCMailer.Scaffolding包,这是最常见的坑!先打开NuGet包管理器控制台,给项目安装对应版本的两个包:
- 如果你用4.0.5版本:
Install-Package MVCMailer -Version 4.0.5 Install-Package MVCMailer.Scaffolding -Version 4.0.5 - 升级到4.5.0的话:
Install-Package MVCMailer -Version 4.5.0 Install-Package MVCMailer.Scaffolding -Version 4.5.0
2. 手动注册脚手架
如果装完包还是报错,那得手动给VS注册这个脚手架。还是在NuGet包管理器控制台里执行这条命令:
Register-Scaffolder -Name Mailer.Razor -TemplateMvcScaffolder -Assembly MVCMailer.Scaffolding
执行完之后再跑Set-DefaultScaffolder -Name Mailer.Razor,应该就能识别到了。
3. 检查VS2017的组件支持
VS2017对旧版脚手架的支持需要开启特定组件,别漏装了:
- 打开Visual Studio安装程序,选择"修改"你的VS2017实例
- 找到"ASP.NET和Web开发"工作负载,展开子组件,确保勾选了"代码生成器"
- 点击"修改"完成安装,重启VS之后再试试操作
额外小技巧:清理NuGet缓存
要是上面的步骤都不管用,试试清理NuGet缓存,可能是缓存的旧包搞的鬼:
- 关掉VS,删掉项目根目录下的
packages文件夹 - 打开NuGet包管理器设置,点击"清除所有NuGet缓存"
- 重新安装MVCMailer和对应的Scaffolding包
内容的提问来源于stack exchange,提问作者ColinICN
相关产品推荐
相关产品推荐

