Closed natemcmaster closed 7 years ago
Almost there: something in Korebuild is attempting to use obj/*.dll...I think.
CSC : error CS2012: Cannot open 'C:\dev\Universe\DependencyInjection\src\Microsoft.Extensions.DependencyInjection\obj\Debug\netstandard1.1\Microsoft.Extensions.DependencyInjection.dll' for writing -- 'The process cannot access the file 'C:\dev\Universe\DependencyInjection\src\Microsoft.Extensions.DependencyInjection\obj\Debug\netstandard1.1\Microsoft.Extensions.DependencyInjection.dll' because it is being used by another process.' [C:\dev\Universe\DependencyInjection\src\Microsoft.Extensions.DependencyInjection\Microsoft.Extensions.DependencyInjection.csproj] [C:\dev\Universe\DependencyInjection.build\targets\makefile.proj]
Doesn't happen when you call "dotnet build" on the solution, w/o korebuild
Nvm, it's dotnet/sdk. https://github.com/dotnet/sdk/issues/739
:up: :date: Removing the [blocked] label. The race condition in solution builds has been fixed.
I added two changes to be aware of.
(1) the tool dependencies (Sake, NuGetPackageVerifier, and NETFrameworkReferenceAssemblies) restore into the regular nuget cache instead of into the .build folder (2) Update to CLI 1.0.0-rc4-004777
We'll need to update other repos. Any project that has multiple *.sln files or has projects in the solution file that doen't build with dotnet-CLI will need to be updated. Razor, MVC, and possibly others.
cc @pakrym
Wouldn't calling pack on each project try to rebuild everything again?
At the moment yes it will build twice. This is an incremental step towards eliminating the Sake lifecycle. Some of our repos have custom packaging steps that we need to port to MSBuild.
This has the advantage of only rebuilding projects once during the pack phase. MSBuild will batch the builds during pack.
In a follow up PR, we can move even more into MSBuild so each project should only compile once per build.cmd run.
👍 LGTM
Perf improvement: only builds each project once during the 'build-compile' target.