.net core .Net核心构建解决方案

.net core .Net核心构建解决方案,.net-core,dotnet-cli,.net Core,Dotnet Cli,如果尝试从visual studio生成的解决方案顶部目录中的命令行运行: dotnet build 我的解决方案的体系结构如下: MySolution.sln > src > MyProject1 > project.json > MyProject2 > project.json > test > MyProject.Test &

如果尝试从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
    

  • 如果
    SolutionDir/ProjectName
    中的
    project.json

    dotnet build**/project.json

注意:

自.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(v3.1.X)仅使用CLI参数构建SLN的命令,请参见下文

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

问题是什么?@berkser现在应该更清楚了,我必须修改答案才能让它正常工作:dotnet build**/project.jsonU可以使用flubu(fluent builder)这样的工具使事情变得更简单。更多关于: