gpt4 book ai didi

.net-core - Visual Studio Code 无法构建默认的 dotnet 核心类库

转载 作者:行者123 更新时间:2023-12-05 06:28:28 25 4
gpt4 key购买 nike

我无法让 VS Code 构建一个空的类库,而 dotnet core 可以非常愉快。

在 PowerShell 中,我创建了一个名为 CoreTesting 的文件夹,导航到其中并使用 code 启动 VS Code。

我按 CTRL + ` 进入终端并导航到解决方案的文件夹。

然后输入dotnet new classlib --name Common,看到新建文件夹Common,输入dotnet build .\Common\进行构建类库。一切顺利。

我将 Common 文件夹添加到 VS Code 并点击 CTRL + SHIFT + B 并看到 No build task to run found。配置构建任务...,所以我点击return 并看到Create tasks.json file from template,所以我点击return再看看:

  • MSBuild
  • 专家
  • .NET 核心
  • 其他

所以我选择 .NET Core 并看到创建了一个包含 tasks.json.vscode 文件夹。该文件包含:

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet build",
"type": "shell",
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}

我再次点击 CTRL + SHIFT + B 并看到选项 build Common,所以我点击 return 并看到这个:

> Executing task in folder Common: dotnet build <

Microsoft (R) Build Engine version 16.0.225-preview+g5ebeba52a1 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

我能看到的结构是这样的:

  • 通用\
    • .vscode\
      • tasks.json
    • bin\
    • obj\
    • Class1.cs
    • Common.csproj

我做错了什么?

最佳答案

我能够在适用于 Windows 的 v1.41.1 上重现您的问题。在这样做的过程中,它创建了这个 tasks.json,它与你的类似......

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "shell",
"args": [
"build",
// Ask dotnet build to generate full paths for file names.
"/property:GenerateFullPaths=true",
// Do not generate summary otherwise it leads to duplicate errors in Problems panel
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}

当您调用任务时,它默认使用工作区文件夹 (CoreTesting) 路径作为工作目录。但是,项目文件是 Common 下的目录,因此出现错误 The current working directory does not contain a project or solution file.

对此的快速修复是简单地打开包含项目文件的目录作为工作区文件夹(即 FileOpen Folder... → 选择 公共(public)目录)。

或者,如果该解决方案不受欢迎,则将 CoreTesting 打开为工作区文件夹,您可以将任务配置为使用不同的工作目录执行。为此,设置任务的 options.cwd 属性...

{
/* snip */
"tasks": [
{
/* snip */
"problemMatcher": "$msCompile",
"options": {
"cwd": "${workspaceFolder}/Common"
}
}
]
}

我在 Schema for tasks.json 中找到了这个属性,它也在 Custom tasks section of the Tasks documentation 中提到.在进行上述任一更改后,库为我成功构建。

关于.net-core - Visual Studio Code 无法构建默认的 dotnet 核心类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54295416/

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