gpt4 book ai didi

c# - 如何在 macOS 上的 Sublime Text 3 上运行 C#?

转载 作者:行者123 更新时间:2023-12-05 03:57:24 24 4
gpt4 key购买 nike

我正在尝试在 macOS 上运行 C#,在自动模式下使用 Sublime Text 3:

> Tools > Build System > Automatic

并建立了一个系统:

{
"cmd": ["csc $file && $file_base_name"],
"shell": true,
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.cs",
"quiet": true
}

Sublime Text 3/Packages/Users/CSharp.sublime-build 基于 this article .

我用CMD+B测试过:

using System;

class re{
public static void Main(){
Console.WriteLine("Hello world");
}
}

返回:

/bin/sh: csc: command not found

我不确定如何解决这个问题,查看了一些相关帖子 such as this ,还是想不通。我该如何解决?


其他信息

$ which dotnet
/usr/local/share/dotnet/dotnet

$ dotnet --version
2.2.401

$ ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
2.2.6

最佳答案

如果您使用 dotnet core (从你的问题看来),你需要使用 dotnet 来执行代码而不是 csc;那是 .NET 的编译器(这些东西的命名法和奇怪的命名让我有点头疼)。

作为一个粗略的过度简化,dotnet 核心使用一个名为 dotnet 的命令来编译和运行您的项目,而 .NET 使用诸如 msbuild 之类的命令来运行构建和使用csc 作为底层编译器。要使用这些命令,您需要安装 Mono 之类的东西(或者 .NET 4 的官方 MacOS 版本或您拥有的东西,假设存在这样的东西)。

我个人用于此类事情的构建系统是:

{
"working_dir": "${folder:${project_path:${file_path}}}",
"selector": "source.cs",

"variants":
[
{
"name": "Build",
"shell_cmd": "dotnet build",
"word_wrap": false,
"quiet": true,
},
{
"name": "Clean",
"shell_cmd": "dotnet clean"
},
{
"name": "Run",
"shell_cmd": "dotnet run"
},
{
"name": "Run Interactive",
"cmd": ["dotnet", "run"],
"target": "terminus_open",
"auto_close": false,
}
],
}

这会设置一个具有多个变体的构建系统,允许您选择构建干净的或运行程序。如果您在构建时未选择变体,则该命令将失败,因为顶级构建不包含任何构建任何内容的命令。

在这种情况下,这是因为最后一个变体使用了 Terminus包以允许运行交互式程序。 Terminus 仅支持 cmd 而我更喜欢使用 shell_cmd,因此顶级构建需要没有隐式命令。

另一种方法是放弃 Terminus 变体或将所有其他变体转换为使用 cmd。在这种情况下,您可以将最常见项目的命令(比如 Run 变体)移动到顶层,以便默认运行程序。

最后一点,要使构建系统正常工作,前提是您在一个文件夹中工作,您已在该文件夹中使用适当的 dotnet 命令创建一个空项目。我不知道是否有办法在该上下文之外使用 dotnet 执行单个临时 C# 文件。

关于c# - 如何在 macOS 上的 Sublime Text 3 上运行 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58530006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com