Commit graph

37 commits

Author SHA1 Message Date
Pranav K
734c9fc43b Copy FileSystemGlobbing and HashCodeCombiner sources 2016-04-29 17:55:06 -07:00
Pranav K
1e753f7781 Replaces references to Microsoft.Extensions.PlatformAbstractions with Microsoft.Extensions.PlatformAbstractions.Internal 2016-04-29 16:06:23 -07:00
Pavel Krymets
40b96398b8 Merge pull request #2684 from dotnet/pakrym/desktop-standalone
Fix desktop standalone scenario
2016-04-27 18:23:44 -07:00
Pavel Krymets
f3b47cabf1 Fix desktop standalone scenario 2016-04-27 12:16:40 -07:00
Ajay Bhargav Baaskaran
44fd8bc2de Updated ProjectModel
- Added PackOptions, RuntimeOptions, PublishOptions and updated CompilationOptions
 - Added IncludeFilesResolver to parse include, exclude patterns
 - Added compile, embed and copyToOutput to compilationOptions
 - Renamed compilationOptions to buildOptions
 - Moved compilerName into buildOptions
 - This change is backwards compatible
 - Added warnings to be shown when the old schema is used
 - Handled diagnostic messages in ProjectReader
 - Added unit and end to end tests
2016-04-27 11:49:44 -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
c8fb6c26c3 Fixed netcore50 package based frameworks (#2630) 2016-04-21 21:47:20 -07:00
David Fowler
4af795b9e8 Fix duplicate dependency issue (#2597)
* Fix duplicate dependency issue
If a package has the same name as a framework assembly in the dependency
graph, we usually replace it with the framework assembly if the package
provides no assets. If the framework assembly wasn't resolved, it would
skip this logic and end up adding dupes to the list, which blows up later on.
This is a tactical fix to solve the issue, we need to do some more thinking
to determine how we want to resolve conflicts between framework assemblies,
packages and dlls with the same name.
2016-04-21 09:05:55 -07:00
Pavel Krymets
3472aee5c9 Remove native compilation, add multiple project files and globbing 2016-04-20 11:54:16 -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
Troy Dai
e176c1d3b9 Remove fragment file's involvement in design time scenarios 2016-03-31 13:57:36 -07:00
Mihai Codoban
4c84e686d0 Avoid duplicate messages 2016-03-30 19:24:43 -07:00
Mihai Codoban
54278c294e Transform lock file reader exceptions into diagnostics 2016-03-30 19:24:43 -07:00
Mihai Codoban
90240a431b Compute msbuild project path relative to root project path 2016-03-30 19:24:43 -07:00
Mihai Codoban
ca2707292e Add MSBuildProjectDescription 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
David Fowler
25b5ce9c77 Tweak error handling a little bit
- Handle unresolved projects better in build
- Move unresolved package marking to the resolver
- Added ToString to LibraryKey for easy diagnosis of errors
2016-03-04 01:17:37 -08:00
David Fowler
dec4a0627f Fix asset copy on publish when lock file instance is shared
- Don't mutate the library target when making a package description.

#1528
2016-02-23 02:34:56 -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
David Fowler
129442923a Updated to a newer version of NuGet
- Update the newest nuget
- Filter out build dependencies from the project resolver based on hte lock file
- Fix more erroneous build dependencies
2016-02-15 18:39:29 -08:00
Troy Dai
b9f2d8fe3d Fix projectmodel-server regression
1. Address the null reference exception when a project dependency is
broken.
2. Address the duplicate key issues after the logic of redirecting
System pacage to reference assembly was added

Update projectmodel-server and tests

1. Fix test timeout caused by undisconnected socket;
2. Update project model server
2016-02-02 22:26:16 -08:00
David Fowler
2807db8044 Auto reference facades in the common cases
- There are 2 major cases to auto reference facades:
1. When using a netstandard/dotnet* based package on a platform where the System.* packages don't provide any compilation assemblies.
2. When referencing a PCL where no dependencies were specified in the nuspec.
- For 1, we handle it by replacing package references with reference assemblies if possible. For 2. We turn assembly references of PCL assemblies into package dependencies.
This should cover the 90% case where people had to manually reference facades anytime they wanted to use a PCL on Net4.x.

TODO: P2P PCL references

#164
2016-01-24 11:05:31 -08:00
Mihai Codoban
0ddf493f1d ProjectContext provides access to Lockfile; Lockfile knows its path 2016-01-20 16:06:00 -08:00
David Fowler
5dbb7ab44d Project model cleanup
- Use ProjectResolver in the ProjectDependencyProvider
- Remove environment variable reading in the project reader and moved it to dotnet-pack
2016-01-03 08:18:25 -08:00
Troy Dai
94c239f74e Update ProjectContextBuilder and FrameworkReferenceResolver 2015-12-25 20:10:26 -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
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
Troy Dai
bfae2ab470 Add WorkspaceContex
WorkspaceContext represets part of the original Design Time Host function:
1. Projects discovery and pooling
2. ProjectContexts pooling
3. Monitor project changes and keep ProjectContexts update to date
2015-11-30 22:39:27 -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
1470ab60d2 Fix dependency issues
- Normal behaviors things were being shown as warnings. Cousin dependencies
always get version bumped.
2015-11-08 07:38:42 -08:00
David Fowler
41516f5a37 Fix up some error handling
- Don't flood console with compilation errors
if the framework isn't installed.
- Split errors into unspecified reference assembly base path and uninstalled framework.
2015-11-07 23:53:05 -08:00
David Fowler
b334c8f28c Fixed a few issues with lock file check
- Normalize version for comparison
- Change dnu restore to dotnet restore in
error message
2015-11-07 02:24:53 -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/ProjectContextBuilder.cs (Browse further)