.Net Core 构建解决方案

Posted

技术标签:

【中文标题】.Net Core 构建解决方案【英文标题】:.Net Core build a solution 【发布时间】:2016-10-24 00:30:32 【问题描述】:

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

我如何构建解决方案而无需明确指定每个项目(然后无需相关维护)?

【问题讨论】:

问题是什么? @berkser 现在应该更清楚了 【参考方案1】:

如果您来到这里寻找使用 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

【讨论】:

【参考方案2】:

.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 build **/project.json 你可以使用像flubu(fluent builder)这样的工具来让事情变得更容易。更多关于:***.com/questions/40890522/…【参考方案3】:

使用 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
            
        ,

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于.Net Core 构建解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用 .NET 4.6 和 ASP.NET Core 的 TFS 2017 构建定义

.NET Core 事件总线,分布式事务解决方案:CAP

.Net Core Visual Studio 项目命令行构建与右键构建相同

cake-build -.Net Core 跨平台构建自动化系统。

.NET Core WebJob 控制台应用程序 CI/CD 使用 Azure DevOps Pipelines

Asp.net core 简单介绍