在 Ubuntu 上使用 VSCode 编译 C# 项目

Posted

技术标签:

【中文标题】在 Ubuntu 上使用 VSCode 编译 C# 项目【英文标题】:Compiling C# projects with VSCode on Ubuntu 【发布时间】:2015-07-09 11:21:20 【问题描述】:

我根据documentation 中提供的各种教程在 Ubuntu 14.04 上设置了 VSCode - 我尝试了尽可能多的方法。编辑器运行没有问题,并且(在解决 Mono 版本差异之后)与我认为的大多数替代方案相比,提供了卓越的编码体验。

我的问题是在尝试编译我的 C# 项目时出现的。这是我在完成入门指南时所期望的功能。点击 ctrl + shift + B 后,我最初被提示创建一个 tasks.json 文件,该文件看起来提供项目特定的快捷键操作配置.从最初生成的tasks.json 中的 cmets 来看,它似乎是针对 Windows 的,并且指的是一个 tsc.exe 程序,它是一个 TypeScript 编译器。

我花了一些时间在同一台笔记本电脑上使用 MonoDevelop 构建项目,但从未设置编译步骤。我假设这应该是开箱即用的功能是错误的,还是我错过了正确处理 C# 项目的步骤?

【问题讨论】:

在这里可能是一个疯狂的猜测,但是 v8dotnet 项目并试图将其绑定为 TS 编译器呢? @Pogrindis - 虽然 VSCode 似乎认为我正在尝试构建一个 TypeScript 项目,但我实际上是在尝试构建一个 C# 项目。您是否建议构建 C# 项目需要 v8dotnet 啊抱歉,我以为你在使用一些 c# 服务器端但使用 typescript 前端。我现在更困惑了! 赞成提醒我存在 Microsoft 支持的 Linux C# IDE 我刚刚让它在我的 Mac 上运行。也许相同的设置会在您的系统上进行。我把它写在我的博客上:Compile a Visual Studio solution in Visual Studio Code on OSX 【参考方案1】:

昨晚浏览默认的tasks.json 文件时,我一定很不耐烦。有一个部分引用了 msbuild(朝向底部):

// Uncomment the section below to use msbuild and generate problems 
// for csc, cpp, tsc and vb. The configuration assumes that msbuild 
// is available on the path and a solution file exists in the  
// workspace folder root. 
/* 
   
    "version": "0.1.0",
    "command": "msbuild",
    "args": [
        // Ask msbuild to generate full paths for file names.       
        "/property:GenerateFullPaths=true"  
    ],
    "taskSelector": "/t:",
    "showOutput": "silent",
    "tasks": [
        
            "taskName": "build",
            // Show the output window only if unrecognized errors occur.            
            "showOutput": "silent",
            // Use the standard MS compiler pattern to detect errors, warnings          
            // and infos in the output.
            "problemMatcher": "$msCompile"
           
     ] 
 
*/

只需注释掉文件的其余部分,取消注释上面的 JSON 文本,并将“command”从“msbuild”更改为“xbuild”(相当于 Mono)。现在点击 ctrl+shift+B 成功编译项目。

希望这种对配置文件的手动修改在预览版结束后将不再那么必要或乏味。

编辑

暂时将此标记为答案。如果产品发展过程中发生变化,将更新或接受更好的答案。

【讨论】:

或者希望这种手动修补仍然存在但不是默认的交互模式将是我的投票 对于今天阅读本文的人来说,JSON 是相同的;这个答案中提到的关键部分是将commandmsbuild更改为xbuild

以上是关于在 Ubuntu 上使用 VSCode 编译 C# 项目的主要内容,如果未能解决你的问题,请参考以下文章

在Ubuntu上使用VSCode编译MySQL Connector/C连接库

为啥Ubuntu系统无法运行VS Code

带有 vscode 和 C# 扩展的 Ubuntu 19.10 上的 Unity3D:出现错误并且自动完成功能不起作用

开发环境Ubuntu 中使用 VSCode 开发 C/C++ ② ( 安装 GCC 编译器 )

ubuntu(Linux)安装Vs code并配置c++编译及cmake多文件编译

Ubuntu安装C++环境(VsCode 编译器)