.Net Core 构建解决方案

.Net Core build a solution

如果您尝试从命令行 运行 使用 visual studio 制作的解决方案的顶层目录:

dotnet build

我的解决方案是这样构建的:

MySolution.sln
   > src
       > MyProject1
           > project.json
       > MyProject2
           > project.json
   > test
       > MyProject.Test
           > project.json

它将失败并出现以下错误:

Couldn't find 'project.json' in current directory

如何在不必明确指定每个项目(然后无需相关维护)的情况下构建解决方案?

.NET Core 1.0 预览版 (project.json)

您可以在顶级目录(.sln 所在的位置)中使用通配符。

  • SolutionDir/Src/ProjectName中的project.json:

    dotnet build */**/project.json

  • 如果 project.jsonSolutionDir/ProjectName:

    dotnet build **/project.json

注:It's recommended to migrate to new csproj project format to get support and new features.

自 .NET Core 1.0 RTM

解决方案已永久恢复。

  dotnet build solution.sln

在powershell中,在当前目录下构建所有csproj文件。

foreach ($csproj in $(Get-ChildItem -Recurse . -Filter *.csproj) )
{
    dotnet build $csproj.FullName
}

要补充答案,如果您要发布项目,请使用 dotnet publish src\MyProject1\ 发布所有文件。

发布将包含定义为包含在 project.json 中的文件。

使用 dotnet CLI 2.1,它可以构建解决方案。 这是我的配置:

        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/SolutionName.sln",
                "/property:GenerateFullPaths=true"
            ],
            "problemMatcher": "$msCompile",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },

如果您来到这里寻找使用 dotnet CLI(版本 > 3.1)构建 SLN 的命令,仅使用 CLI args,它在下面。

dotnet build <PATH>/<TO>/<SLN_FILE>.sln

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-build#arguments