简单的.NET Core控制台和类库项目无法构建 - 缺少系统命名空间

时间:2018-05-26 07:54:06

标签: c# .net-core

我从https://www.microsoft.com/net/learn/get-started/windows下载了.NET Core SDK并使用dotnet new console为Core版本2创建了一个简单的控制台应用程序,但是当我使用dotnet build构建它时,我得到26个构建错误"类型或命名空间'系统'无法找到"和"预定义类型' System.String'没有定义" (后者有一些变化,但它们都来自系统命名空间)。我检查了csproj文件但是找不到普通的东西(我不希望因为所有文件都是由dotnet生成的):

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp2.0</TargetFramework>
    </PropertyGroup>
</Project>

我也试过调用dotnet restore但是返回了消息Restore completed in 34.26 ms for c:\Development\foo\foo.csproj.所以显然没有错。如果我在项目目录中运行dotnet --info,我会收到以下信息:

.NET Command Line Tools (2.1.200)

Product Information:
Version:            2.1.200
Commit SHA-1 hash:  2edba8d7f1

Runtime Environment:
OS Name:     Windows
OS Version:  10.0.17134
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\2.1.200\

Microsoft .NET Core Shared Framework Host

Version  : 2.0.7
Build    : 2d61d0b043915bc948ebf98836fefe9ba942be11

我使用dotnet new classlib的类库成功重新创建了该问题。我还安装了第二台安装了dotnet的笔记本电脑,幸运的是我能够在该笔记本电脑上生成一个类库,没有任何编译错误。然后我使用WinMerge比较了这两个项目,这就是我发现的 - 我将用(a)引用工作项目,用(b)引用有缺陷的项目:

  • obj \ [projectname] .csproj.nuget.g.props中的NuGetToolVersion部分在(a)中为4.4.0,在(b)中为4.7.0
  • NETStandard.Library在(a)中为2.0.0,在(b)中为2.0.1
  • (b)中缺少obj \ [projectname] .csproj.nuget.g.targets中的ImportGroup部分
  • &#34;建立&#34; &#34; NETStandard.Library / 2.0。*&#34;在(b)
  • 中缺少obj \ project.assets.json
  • &#34;文件&#34; &#34; NETStandard.Library / 2.0。*&#34;在obj \ project.assets.json中缺少(b)
  • 中的所有.dll引用
  • &#34;版本&#34; &#34;框架下的关键&#34;在obj \ project.assets.json中设置为&#34; 2.0.0&#34;在(a)和&#34; [2.0.1,)&#34;在(b)中。 (b)中的值不是拼写错误 - 这显然是无效的语法。

我的猜测是,最后4个不同之处是犯罪现象,但我不知道如何解决这个问题或者为什么会这样。这可能是dotnet的类库项目模板中的错误,但我仍然对此有疑问。

我应该说我在新修复的笔记本电脑上安装了.NET Core SDK,所以我怀疑问题很简单,但我还没有找到它。有谁知道为什么会这样或我应该检查什么?

1 个答案:

答案 0 :(得分:0)

不幸的是,我只能通过完整的OS恢复(无论如何计划)来解决该问题。在撰写本文时,我正在运行dotnet版本2.1.401,此后没有遇到此问题,因此我将此答复发布到社区Wiki。

有关GitHub问题的详细信息位于https://github.com/dotnet/cli/issues/9353