diff --git a/graph.proj b/graph.proj new file mode 100644 index 0000000000000000000000000000000000000000..c436c08d23649abbe20bf733aeb7b3fbf46257b8 --- /dev/null +++ b/graph.proj @@ -0,0 +1,7 @@ +<!-- workaround https://github.com/Microsoft/msbuild/issues/1587 --> +<Project> + <ItemGroup> + <RestoreGraphProjectInputItems Include="$(RepoDir)\**\*.csproj" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\NuGet.targets" /> +</Project> \ No newline at end of file diff --git a/makefile.shade b/makefile.shade index 7e5695cbc2a3f3c951b82ac473599e5528844648..fd09db223663754cde4af81c4ca252e6c2cd1a1b 100644 --- a/makefile.shade +++ b/makefile.shade @@ -918,9 +918,15 @@ functions { public static MsBuildSolutionInfo LoadFromFile(string file) { - var info = new MsBuildSolutionInfo() + if (!Path.IsPathRooted(file)) { - FilePath = file + file = Path.Combine(System.IO.Directory.GetCurrentDirectory(), file); + } + + var info = new MsBuildSolutionInfo + { + FilePath = file, + Directory = Path.GetDirectoryName(file) }; var lines = File.ReadAllLines(file); @@ -942,6 +948,7 @@ functions } public string FilePath { get; private set; } + public string Directory { get; private set; } public Version VisualStudioVersion { get; set; } @@ -1054,7 +1061,8 @@ functions { UseShellExecute = false, FileName = "dotnet", - Arguments = "msbuild \"" + solution.FilePath + "\" /nologo /t:GenerateRestoreGraphFile \"/p:RestoreGraphOutputPath=" + dgJson + "\"" + // TODO revert to invoking on .sln file when https://github.com/Microsoft/msbuild/issues/1587 is resolve + Arguments = "msbuild \"" + Path.Combine(Directory.GetCurrentDirectory(), "graph.proj") + "\" /v:q /p:WarningLevel=0 /p:RepoDir=\"" + solution.Directory + "\" /nologo /t:GenerateRestoreGraphFile \"/p:RestoreGraphOutputPath=" + dgJson + "\"" }; var p = Process.Start(psi); p.WaitForExit();