.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.json
在SolutionDir/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 Visual Studio 项目命令行构建与右键构建相同
cake-build -.Net Core 跨平台构建自动化系统。