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

时间:2018-04-21 07:03:10

标签: .net-core nuget-package-restore file-watcher

我在here的ubuntu上安装了.NET Core 2.1.105  并使用#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { float num; char buf[10]; printf("Enter float value: "); fgets(buf, 10, stdin); sscanf(buf, "%lf", &num): num = (roundf(num * 100.0) / 100.0); printf(num = %.2f\n", num); }

创建了示例Web api项目

然后我尝试使用

添加dotnet观察程序包
dotnet new api-test

当我发出dotnet add package Microsoft.DotNet.Watcher.Tools 时,我收到以下错误:

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. 文件

.csproj

- 更新

如下面的答案中所述,dotnet watch应该包含在2.1版本的SDK中,所以我做了这个小测试:

<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>

-

dotnet watch可从preview2版本开始提供(可用here

2 个答案:

答案 0 :(得分:6)

.NET Core 2.1 Preview 2开始,dotnet watch等CLI工具现已成为SDK的一部分:

  

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

     

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

答案 1 :(得分:1)

dotnet watch是一个CLI工具,而不是您的代码可以依赖的包。 official docs说明您需要使用DotNetCliToolReference

    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />

您不应将其用作PackageReference