我在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);
}
然后我尝试使用
添加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)
答案 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
。