Currently VSTS is producing duplicate package and they are running into
each other will producing
Today:
Linux x64 build definition: both .deb and .tar.gz
Ubuntu 16.04 build definition: both .deb and .tar.gz (ex.
dotnet-sdk-2.0.0-preview3-006477-linux-x64.tar.gz,
dotnet-sdk-debug-2.0.0-preview3-006477-linux-x64.tar.gz,
dotnet-sdk-internal-2.0.0-preview3-006477-linux-x64.tar.gz)
After this change:
Linux x64: .tar.gz
Ubuntu 16.04: .deb
No change for windows and macOS
Tested on Ubuntu with and without --linux-portable and windows
Remove ProjectJsonMigration and its test from solution file
Change dependecy by package reference instead of project 2 project
Construct the sln and dotnet new with wrapper that is used in migrate
package
Add reference to Nuget ProjectModel etc since CrossGen need it and it
cannot automatically get the reference
Our build scripts were pulling down all of buildtools and run.exe in
service of "clean.{cmd|sh}". While having consisent commands across
the repos is a good thing to strive for, we are pulling down a bunch
of additional stuff we don't need for simple commands that have well
known analogs (e.g. git clean).
If we had been all in on run.exe, this might have made sense, but we
aren't, so it feels like something we should clean up.
By doing this, we can stop downloading bootstrap from github when we
build (super dangerous anyway because changes in buildtools could have
broken us).
In addition, I changed the way we install dotnet to just invoke the
script in `scripts/obtain/` instead of downloading a version from
GitHub. This makes local development of changes to obtain easier and
removes yet another place we had to download a script.
When passing a property using the commandline, it is not flown through to "dotnet publish" calls. So instead of using "dotnet publish", just use the MSBuild task to invoke the Publish target on the reidst project. This way properties flow correctly.
I also did a little cleaning of unused build logic.