求助:Ubuntu环境下.NET Core 2.1.105无法安装dotnet watcher工具
解决.NET Core 2.1添加Microsoft.DotNet.Watcher.Tools后dotnet restore报错的问题
我之前在.NET Core 2.1项目里也踩过这个坑,你遇到的报错大概率是因为Microsoft.DotNet.Watcher.Tools在.NET Core 2.1及后续版本的引用方式和早期版本不一样了,直接用dotnet add package命令添加会导致restore失败。下面给你一步步的解决办法:
1. 先移除错误添加的包引用
首先把之前通过dotnet add package添加的包移除,执行这条命令:
dotnet remove package Microsoft.DotNet.Watcher.Tools
2. 编辑.csproj文件添加工具引用
对于.NET Core 2.1项目,正确的方式是直接修改你的api_test.csproj文件。打开这个文件,找到<ItemGroup>节点(如果没有就新建一个),添加以下内容:
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.1.1" />
这里的版本号建议和你的.NET Core SDK版本匹配,你用的是2.1.105,选2.1.x的稳定版本就可以。
3. 重新执行dotnet restore
保存好.csproj文件后,再次运行restore命令:
dotnet restore
这次应该就能顺利完成包的还原了。
4. 验证工具是否可用
还原完成后,你可以用下面的命令测试dotnet watch是否正常工作:
dotnet watch run
如果项目能正常启动,并且在你修改代码后自动重启,就说明配置成功了。
补充说明
在.NET Core 2.0及更早版本,我们确实可以用dotnet add package来添加这个工具包,但从2.1开始,这类CLI工具被归类为DotNetCliToolReference,需要直接在项目文件中配置,而不是作为普通的NuGet包引用,这就是你之前restore报错的核心原因。
内容的提问来源于stack exchange,提问作者opensas




