When running an app with `dotnet run`, we are redirecting the standard out and error just to print it out to our standard out and error. However, we are batching the output until we hit a newline, which isn't ideal for console apps.
To fix this, `dotnet run` no longer redirects the standard out and error.
Fix#2777
* Use a WorkspaceContext in dotnet-build to cache project data across
multiple compilations in a single build action
* Dramatically reduce string and object duplication by introducing a
"Symbol Table" that shares instances of NuGetVersion, NuGetFramework,
VersionRange and string across multiple lock-file parses
Test Results:
* Testing was done by compiling Microsoft.AspNetCore.Mvc (and it's
dependencies) and taking memory snapshots after each compilation in
dotMemory
* We used to allocate ~3MB and deallocate ~2.5MB on EACH compilation in
a single build action. This has been reduced to ~120KB
allocated/deallocated
* After introducing WorkspaceContext, total memory usage spiked from 6MB
across the whole build action to about 13MB, introducing the symbol
table dropped it back to about 5-6MB.
script changes to pipe configuration to test.ps1
debug commit, remove this commit
Change dotnet-test to invoke dotnet-test-xunit directly
build tests with configuration, framework, runtime in windows
Update testtargets in new build scripts
make configuration first arg to dotnet test
PR Feedback
update command factory
fix interface
test update
Only apply the ANSI passthrough for child commands. Otherwise the
escape codes are printed to the console on Windows
Make Report.Write process escape codes so that forwarded output will have
its escape codes processed.
Also make verbose be inherited by all child processes.
Add TargetFramework and FullTargetFramework to compile and publish script
variables.
Add ProjectLocal Command Resolution Strategy.
Fixup ArgumentEscaper to not always quote things.
Fixes#1216Fixes#1016Fixes#982
Build becomes the new compile. It decides which project to compile and how. It checks for incremental preconditions
Compile's resonsibility is trimmed down to only knowing how to invoke the compiler on a project
- Added basic support for embedded resources (resx files are next!)
- Print out exit code from executed command (makes debugging easier)
- Fixed dnvm2.cmd to avoid putting things on the user path
- Fixed up propagation of exit codes
- Work aronud coreconsole issue in the bootstrap.cmd
- Use msbuild 14 roslyn csc until we have it
- Remove quoting args when building project refs, it wasn't working
- Fixed logic that launched exe's directly