我第一次使用nuke build。
在完成getting started指南的过程中,我执行了以下操作:
dotnet tool install Nuke.GlobalTool --global
nuke :setup
这通过一个向导运行,该向导生成:
.nuke文件似乎包含我在构建期间选择的解决方案。现在,我在要构建的文件夹下有一些解决方案。
所以我假设我可以将它们放入.nuke
文件中。
code/solution1/solution1.sln
code/solution2/solution2.sln
code/solution3/solution3.sln
无济于事。当我运行build.ps1时,它只会构建列表中的第一个解决方案。
我所看到的关于.nuke文件的唯一帮助是“根目录标记文件;引用默认解决方案文件”
问题是,使用nuke构建,如何在文件夹层次结构下构建多个解决方案?
答案 0 :(得分:1)
我不认为它是为此设计的-相反,您需要为每个解决方案构建一个核子。
答案 1 :(得分:0)
.nuke
文件当前主要用于SolutionAttribute
。最终,将使用global.json
替换它。如果您要构建多个解决方案,建议您创建一个IEnumerable<Solution>
属性,并通过MSBuild或dotnet CLI使用combinatorial invocations。
答案 2 :(得分:0)
这也是我的用例,我将热切地等待global.json文件:)由于我还想知道多个解决方案目标/等,因此这大致就是我收集的内容:
.nuke文件可用于查找注入的RootDirectory(供其他内部afaik使用),如果您使用不带参数的[Solution]属性,则还可以包含默认解决方案。 您可以通过以下任一方法来设置Matthias谈到的组合调用:
//inside of build.cs
[Solution("Test1/example1.csproj")]
readonly Solution ExampleSolution1;
[Solution("Test2/example2.csproj")]
readonly Solution ExampleSolution2;
//anywhere in any task or function -- if moved, just pass in RootDirectory
IEnumerable<Solution> solutions = new[]{
ProjectModelTasks.ParseSolution(RootDirectory / "Test1/example1.csproj"),
ProjectModelTasks.ParseSolution(RootDirectory / "Test2/example2.csproj"),
};