【问题标题】:CS0246: The type or namespace name 'System' could not be foundCS0246: 找不到类型或命名空间名称“系统”
【发布时间】:2020-01-29 21:56:17
【问题描述】:

我在我的 Mac 上使用 dotnet 3.1 CLI 和 .NET Core 3.1 来学习 msbuild 并从头开始创建项目文件。我在Microsoft MSBuild documentation 上尝试了演练,但失败并出现以下错误:

CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)

我做错了什么?如何在我的项目中引用 System 命名空间?

程序.cs

using System;

class HelloWorld {

    static void Main() {
#if DebugConfig
        Console.WriteLine("WE ARE IN THE DEBUG CONFIGURATION");
#endif

        Console.WriteLine("Hello, world!");
    }
}

项目.csproj

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <Compile Include="program.cs" />
    </ItemGroup>

    <Target Name="Build">
        <Csc Sources="@(Compile)"/>
    </Target>
</Project>

命令行界面:

dotnet msbuild project.csproj -t:Build

【问题讨论】:

  • 你能分享你的代码吗?和csproj 文件
  • 它与 OP 中 MS 文档的链接完全相同。
  • 这是一个过时的文档,关于老式的 msbuild 项目。您需要为 dotnet 核心使用新的 sdk 样式项目,这里是 tutorial
  • 我想从头开始创建 project.csproj 文件,而不继承 SDK 的默认设置,因为我想学习 msbuild 设置。

标签: c# .net-core msbuild


【解决方案1】:

您的项目文件看起来已经过时了

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <Compile Include="program.cs" />
    </ItemGroup>

    <Target Name="Build">
        <Csc Sources="@(Compile)"/>
    </Target>
</Project>

对于 .NET Core 开发,使用了新的 SDK 风格的项目,类似的东西

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>

关注MSDN tutorial 如何在 Mac OS 上构建初始解决方案

【讨论】:

  • 我想从头开始创建 project.csproj 文件,而不继承 SDK 的默认设置,因为我想学习 msbuild 设置。
  • 您只能在带有 .NET 内核的 mac os 上使用 sdk 样式的项目。您可以照常使用大多数 msbuild 设置
猜你喜欢
  • 2017-11-25
  • 2016-08-28
  • 1970-01-01
  • 2019-07-14
  • 2019-09-14
  • 2013-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多