当我尝试启动我的C#代码时,收到消息“找不到任务'build'”

时间:2019-07-04 19:58:00

标签: c# .net-core

我是C#的新手,正在学习复数视觉

我完全遵循了教程的操作,但是遇到了一个教程没有解决的问题。

当您通过.Net制作C#代码时,我拥有一个简单的“ Hello World”程序

在Visual Studio Code中,如果选择“开始调试”或“不进行调试开始”,则会弹出以下错误消息

''找不到任务'build'“

然后我仍然单击调试,然后出现以下错误

启动:程序目录\ <插入项目名称-此处> .dll不存在 可以选择打开launch.json

令人困惑的是,.dll文件确实存在...

进一步,检查launch.json,我有以下内容:

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch (console)",
      "type": "coreclr",
      "request": "launch",
      "WARNING01": "*********************************************************************************",
      "WARNING02": "The C# extension was unable to automatically decode projects in the current",
      "WARNING03": "workspace to create a runnable launch.json file. A template launch.json file has",
      "WARNING04": "been created as a placeholder.",
      "WARNING05": "",
      "WARNING06": "If OmniSharp is currently unable to load your project, you can attempt to resolve",
      "WARNING07": "this by restoring any missing project dependencies (example: run 'dotnet restore')",
      "WARNING08": "and by fixing any reported errors from building the projects in your workspace.",
      "WARNING09": "If this allows OmniSharp to now load your project then --",
      "WARNING10": "  * Delete this file",
      "WARNING11": "  * Open the Visual Studio Code command palette (View->Command Palette)",
      "WARNING12": "  * run the command: '.NET: Generate Assets for Build and Debug'.",
      "WARNING13": "",
      "WARNING14": "If your project requires a more complex launch configuration, you may wish to delete",
      "WARNING15": "this configuration and pick a different template using the 'Add Configuration...'",
      "WARNING16": "button at the bottom of this file.",
      "WARNING17": "*********************************************************************************",
      "preLaunchTask": "build",
      "program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
      "args": ["link"],
      "cwd": "${workspaceFolder}",
      "console": "internalConsole",
      "stopAtEntry": false
    },
    {
      "name": ".NET Core Attach",
      "type": "coreclr",
      "request": "attach",
      "processId": "${command:pickProcess}"
    }
  ]
}

4 个答案:

答案 0 :(得分:1)

简单的方法

在VS Code中,加载代码库之后。调出command pallet并输入> .NET Generate Assets for Build and Debug,然后按回车键/输入。

这将强制VS Code重新创建launch.jsontask.json文件。

请注意“ VS代码”窗口的左下角,该消息类似于以下内容:

screenshot of VS Code showing a toast message asking for confirmation when recreating build and debug assets

并确保您单击Yes

复杂的方式

您需要更改task.json文件中当前显示为以下行的行:

"program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",

在您的csproj中用目标框架别名替换<insert-target-framework-here>,看起来像这样:

<TargetFramework>netcoreapp2.1</TargetFramework>

您还需要用生成的DLL的名称替换<insert-project-name-here>.dll字符串。

答案 1 :(得分:1)

我有一个类似的问题,杰米·泰勒(Jamie Taylor)的回答从一开始就没有为我做,它一直说“找不到任务'build'”,我无法评论他的回答,所以这是可行的为我。

简短答案
在调用> .NET Generate Assets for Build and Debug之前,递归删除解决方案根目录中的任何.vscode文件夹。

详细答案
我每次都在OmniSharp日志中(在“输出”窗格中,OmniSharpLog下拉列表中)寻找第一个错误:

  • 对我来说,第一个错误是[失败]:无法找到后备程序包文件夹'C:\ Microsoft \ Xamarin \ NuGet \'
    • 解决方案=> mkdir C:\Microsoft\Xamarin\NuGet\
  • 然后下一个失败是关于Omnisharp无法恢复我的nuget程序包
    • solution => cd到我的.sln所在的文件夹,名为dotnet restore

OmniSharp日志中没有更多的失败,但是它仍然抱怨构建任务。就我而言,我注意到我的解决方案中有两个.vscode文件夹,一个在根目录,一个在另一个文件夹中:
-全部删除
-称为> .NET Generate Assets for Build and Debug
做到这一点并看到它正确创建了launch.jsontasks.json

现在我可以正确调试了。

答案 2 :(得分:0)

这听起来可能很奇怪,但就我而言,在我更新Visual Studio代码后,当我按下 Ctrl + Shift + B 时,构建操作成功完成。

答案 3 :(得分:-1)

在Visual Studio上,您可以使用C#扩展程序的生成器来构建launch.json和task.json 但是,您还应该将C#扩展程序的生成器用于launch.json和task.json。 请阅读:here以执行此操作。 但是,如果您是C#的初学者,那么最好使用Visual Studio。所有工具都是集成的。它不是编辑文本,而是IDE。 但是,如果您喜欢Visual Studio代码,请阅读我发送的文档:)。 visual studio ide