无法在dotnetcore 2.1.105上安装dotnet观察工具

ope*_*sas 1 nuget-package-restore file-watcher .net-core

我从这里在ubuntu上安装了.NET Core 2.1.105 并创建了示例web api项目dotnet new api-test

然后我尝试添加dotnet观察程序包

dotnet add package Microsoft.DotNet.Watcher.Tools
Run Code Online (Sandbox Code Playgroud)

当我发出一个时,dotnet restore我收到以下错误:

$ dotnet restore
  Restoring packages for ~/devel/apps/dotnet/api_test/api_test.csproj...
  Restore completed in 101.8 ms for ~/devel/apps/dotnet/api_test/api_test.csproj.
~/devel/apps/dotnet/api_test/api_test.csproj : error NU1605: Detected package downgrade: Microsoft.NETCore.App from 2.0.6 to 2.0.0. Reference the package directly from the project to select a different version. 
~/devel/apps/dotnet/api_test/api_test.csproj : error NU1605:  api_test -> Microsoft.DotNet.Watcher.Tools 2.0.1 -> Microsoft.NETCore.App (>= 2.0.6) 
~/devel/apps/dotnet/api_test/api_test.csproj : error NU1605:  api_test -> Microsoft.NETCore.App (>= 2.0.0)
  Restore failed in 1.26 sec for ~/devel/apps/dotnet/api_test/api_test.csproj.
Run Code Online (Sandbox Code Playgroud)

这是我的.csproj档案

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.7" />
    <PackageReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.1" />
  </ItemGroup>

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

</Project>
Run Code Online (Sandbox Code Playgroud)

- 更新

如下面的答案中所述,dotnet watch应该包含在他从2.1版开始的SDK的一部分,所以我做了这个小测试:

$ dotnet --version
2.1.105
$ dotnet new webapi -o tmp_api
The template "ASP.NET Core Web API" was created successfully.
$ cd tmp_api/
$ dotnet watch run
No executable found matching command "dotnet-watch"
Run Code Online (Sandbox Code Playgroud)

-

dotnet手表可从preview2版本开始提供(可在此处获得)

Set*_*Set 6

.NET Core 2.1 Preview 2开始,CLI工具dotnet watch现在是SDK的一部分:

我们发现这些工具非常流行,不得不将它们添加到单个项目中似乎不是正确的设计,因此我们将它们作为SDK的一部分.

这些工具以前是DotNetCliToolReference工具.他们不再以这种方式交付.使用DotNetCliToolReference.NET Core 2.1时,可以删除项目文件中的条目.