【问题标题】:Can't install dotnet watcher tools on dotnetcore 2.1.105无法在 dotnetcore 2.1.105 上安装 dotnet watcher 工具
【发布时间】:2018-04-21 07:03:09
【问题描述】:

我在 ubuntu 上从 here 安装了 .NET Core 2.1.105 并使用dotnet new api-test

创建了示例 web api 项目

然后我尝试添加 dotnet watcher 包

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

<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 应该包含在 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"

--

dotnet watch 可从 preview2 版本开始(可在 here 使用)

【问题讨论】:

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


    【解决方案1】:

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

    我们发现这些工具非常受欢迎,以至于必须将它们添加到单个项目中似乎不是正确的设计,因此我们将它们作为 SDK 的一部分。

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

    【讨论】:

    • 我更新了问题,dotnet watch 似乎没有开箱即用
    • @opensas 当前最新的 Preview 2 版本是 2.1.300-preview2-008533dotnet watch run 适合我。不确定 2.1.105 是否包含这些更改
    【解决方案2】:

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

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

    您不应该将其用作PackageReference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 2022-07-06
      • 2020-08-28
      • 2021-07-20
      • 1970-01-01
      • 2022-01-13
      • 2019-01-29
      • 2019-02-27
      相关资源
      最近更新 更多