Commit graph

35 commits

Author SHA1 Message Date
Eric Erhardt
9a85205781 Merge pull request #2792 from eerhardt/Relative
Execute 'csc' with working directory set to the project directory.
2016-05-02 18:53:57 -05:00
Eric Erhardt
d52ea07934 Fixing dotnet-compile and dotnet-test unit tests. Also, fixing a potential NullRef in ProjectContext.
The compile unit test needed to be updated to mock out a new call to ICommand.WorkingDirectory.

The test unit test needed to account for build-base-path getting fully qualified.
2016-05-02 14:39:09 -05:00
Troy Dai
f32683cbab refactor WorkspaceContext (#2736)
this removes a regression in ProjectModelServer behavior

also added a test to cover target framework change in DTH
2016-05-02 11:32:24 -07:00
Andrew Stanton-Nurse
ef0ca39da1 Memory usage improvements in build (#2626)
* 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.
2016-04-22 15:01:56 -07:00
Pavel Krymets
3e5b68dc43 Add project to project graph 2016-04-19 21:16:18 -07:00
Andrew Stanton-Nurse
14770ae5ba Add tests for "half-portable" scenario 2016-04-12 16:09:53 -07:00
Pavel Krymets
2d3a1fd177 Make desktop publishing "half-portable" by default 2016-04-12 16:09:53 -07:00
Pavel Krymets
567d1fa19d Alow type platform to be in target dependencies 2016-04-06 10:46:52 -07:00
Pavel Krymets
8831bb4a8b Do not trim refs 2016-04-05 08:06:17 -07:00
Mihai Codoban
fb2326bb50 Reuse lock file when creating a runtime context 2016-03-30 19:24:43 -07:00
Bryan Thornbury
f0c2cb2c18 product changes to support portable tools 2016-03-17 13:44:32 -07:00
Andrew Stanton-Nurse
d08e83d5db add support for portable application layout 2016-03-12 11:52:29 -08:00
Andrew Stanton-Nurse
7cc90d9ad1 Update dotnet-build to produce portable layout
dotnet-build will produce a deps file for portable builds, and will now
create "runnable" outputs for RID-less targets

the outputs won't actually be runnable today because we need corehost
changes and to generate a deps.json file for corehost to use.
2016-03-08 11:46:15 -08:00
Pavel Krymets
a074101b1d Add better messages for run scenarios 2016-02-24 10:49:00 -08:00
Pavel Krymets
69c0375b3f Add error message when runtime target is not found 2016-02-20 18:20:16 -08:00
David Fowler
69b5e3f815 Fixing versions
- Added --version-suffix to build and publish
- Support reading DOTNET_* version variables everywhere versions can be read
- Show the commit sha in dotnet --version
- Added tests that check the assembly output version
- Set DOTNET_BUILD_VERSION when producing the CLI app itself so that it has the version information stamped in for help.
2016-02-18 01:10:07 -08:00
Pavel Krymets
9fb99526a1 Use runtime context only where we require it 2016-02-16 15:54:33 -08:00
Pavel Krymets
0f82ae37f3 Refactor output directory code 2016-02-09 08:52:59 -08:00
David Fowler
a35ae177ff - Make all of the code looking for built assets use the OutputPathCalculator
- Project dependencies are always built into their specific folders and the main project is the only one that uses the output path and intermediate output path variable.
- Publish respects the output path for publish only, not compile as part of publish. This means that publishing multiple runtimes will stomp on each other. So don't do that. We can throw if you specify and output location and you haven't specified a specific combination of RID and framework. Alternatively it should probably just pick the first TFM/RID pair from the lock file. This is similar to how `dotnet run` works.
- Cleaned up the incremental build output formatting
- Use a single stream (output stream) since interleaving them was causing formatting issues (like losing random characters in the middle of outputting things).
- Didn't change how pack works, it still preserves the output structure when passing `--output`, this one is worth discussing. We could leave the build output inplace and only move the package to the output location. That's more consistent with how everything else works and can be a follow up PR.
2016-01-27 11:13:45 -08:00
Livar Cunha
ac2d0e36a9 Changing multiple dotnet commands to be aware of $configuration/$tfm folder structure under the --output path option.
Changing the build scripts to copy files over from debug\dnxcore and to check for the folders existence before trying that.
Making the build command aware of the subfolders and making E2E tests aware of subfolders.
Fixing compiler tests to look for the xml in the right plae taking into consideration the configuration and tfm.
Modifying publish tests to not take into consideration the runtime. This is a temporary change. will bring it back once the commands all understand rid.
Making the packaging step work by placing binaries where dotnet pack expects.
2016-01-22 15:22:44 -08:00
Mihai Codoban
0ddf493f1d ProjectContext provides access to Lockfile; Lockfile knows its path 2016-01-20 16:06:00 -08:00
piotrp
08dd628172 create dotnet-restore.exe 2016-01-06 01:46:10 -08:00
Krzysztof Wicher
df1b42dd10 apply review feedback 2015-12-09 00:47:57 -08:00
Krzysztof Wicher
ba6b0e5d9b fix dependency version bug 2015-12-09 00:20:39 -08:00
Krzysztof Wicher
344a730607 enable debugging on Start button in dotnet-pack in VS 2015-12-09 00:20:39 -08:00
Piotr Puszkiewicz
68216b80cf Merge pull request #434 from dotnet/anurse/401-loader
Add ProjectAssemblyLoadContext
2015-12-08 16:30:33 -08:00
Andrew Stanton-Nurse
4e6244d8a8 add ProjectAssemblyLoadContext
allows the loading of assemblies in the context of an existing project
2015-12-08 11:30:25 -08:00
Piotr Puszkiewicz
88806eb7de Merge pull request #378 from krwq/ci_build_add_packaging
Step 1 to enable automatic nuget package upload
2015-12-07 10:04:30 -08:00
Krzysztof Wicher
413488f502 Create NuGet packages as part of the build 2015-12-04 18:03:57 -08:00
Sridhar Periyasamy
71d55a5596 Address PR feddback
Create a new method called ProjectContext.CreateContextForEachTarget instead of directly consuming LockFile Apis in the publish command.
2015-12-03 12:13:59 -08:00
PiotrP
a84a56a152 PR Feedback 2015-11-30 17:30:25 -08:00
piotrp
bf2583c1a6 Fix Microsoft.DotNet.ProjectModel namespace 2015-11-27 16:19:54 -08:00
PiotrP
e839b4debb Update Copyright headers in all source files. 2015-11-16 19:47:43 -08:00
David Fowler
c83f58d566 Minor API cleanup
- Make ProjectContextBuilder a fluent API
- Rename ResolveRepositoryPath to ResolvePackagesPath
2015-10-29 01:35:23 -07:00
David Fowler
f98159b3bb Renamed ProjectModel project
- Microsoft.Extensions.ProjectModel -> Microsoft.DotNet.ProjectModel
2015-10-29 00:15:12 -07:00
Renamed from src/Microsoft.Extensions.ProjectModel/ProjectContext.cs (Browse further)