Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit bb68d15

Browse files
committed
Merge pull request #2138 from ericstj/ericstj/upFrontRestore
Restore packages in a single step, before building projects.
2 parents 7f762bd + af21be2 commit bb68d15

File tree

4 files changed

+30
-2
lines changed

4 files changed

+30
-2
lines changed

build.proj

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,28 @@
1010

1111
<Import Project="dir.traversal.targets" />
1212

13+
<PropertyGroup>
14+
<TraversalBuildDependsOn>
15+
BatchRestorePackages;
16+
$(TraversalBuildDependsOn);
17+
</TraversalBuildDependsOn>
18+
</PropertyGroup>
19+
20+
<Target Name="BatchRestorePackages">
21+
<Message Importance="High" Text="Restoring all packages..." />
22+
<!-- restore all project.jsons in one pass for perf & to avoid concurrency problems with dnu -->
23+
<!-- include ToolsDir to restore test-runtime\project.json as well -->
24+
<Exec Command="$(DnuRestoreCommand) &quot;$(MSBuildProjectDirectory)\src&quot; &quot;$(ToolsDir)&quot;" StandardOutputImportance="Low" CustomErrorRegularExpression="^Unable to locate .*" />
25+
26+
<ItemGroup>
27+
<_allPackagesConfigs Include="$(MSBuildProjectDirectory)\src\**\packages.config"/>
28+
</ItemGroup>
29+
<Exec Condition="'@(_allPackagesConfigs)' != ''" Command="$(NugetRestoreCommand) &quot;%(_allPackagesConfigs.FullPath)&quot;" StandardOutputImportance="Low" />
30+
</Target>
31+
32+
<!-- Override RestorePackages from dir.traversal.targets and do a batch restore -->
33+
<Target Name="RestorePackages" DependsOnTargets="BatchRestorePackages" />
34+
1335
<!-- Override clean from dir.traversal.targets and just remove the full BinDir -->
1436
<Target Name="Clean">
1537
<RemoveDir Directories="$(BinDir)" />

dir.props

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,16 @@
6262

6363
<DnuRestoreCommand>"$(DnuToolPath)"</DnuRestoreCommand>
6464
<DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
65+
<DnuRestoreCommand>$(DnuRestoreCommand) --parallel</DnuRestoreCommand>
6566
<DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/'))"</DnuRestoreCommand>
6667
<DnuRestoreCommand Condition="'$(LockDependencies)' == 'true'">$(DnuRestoreCommand) --lock</DnuRestoreCommand>
6768
</PropertyGroup>
6869

70+
<PropertyGroup Condition="'$(BuildAllProjects)'=='true'">
71+
<!-- When we do a traversal build we get all packages up front, don't restore them again -->
72+
<RestorePackages>false</RestorePackages>
73+
</PropertyGroup>
74+
6975
<!--
7076
Set up Roslyn predefines
7177
-->

src/System.Diagnostics.Tools/tests/project.lock.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"locked": false,
2+
"locked": true,
33
"version": -9996,
44
"targets": {
55
"DNXCore,Version=v5.0": {

src/System.IO/tests/project.lock.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"locked": false,
2+
"locked": true,
33
"version": -9996,
44
"targets": {
55
"DNXCore,Version=v5.0": {

0 commit comments

Comments
 (0)