When no 'runtime' and 'framework' are specified then publish for all 'framework/runtime' targets found in project.lock.json. But currently when 'runtime' is not specified then current OS runtime identifier is assumed. This will go away when xplat publish is enabled.
Example - 'dotnet publish /home/sridhar/foo/project.json' -> Publish for all targets in project.lock.json.
User can also specify either 'framework' or 'runtime'. In that case all the corresponding 'framework' or 'runtime' targets in project.lock.json are published.
Example - 'dotnet publish --framework dnxcore50 /home/sridhar/foo/project.json' -> Publish for all targets in project.lock.json with framework dnxcore50.
(or)
'dotnet publish --runtime win7-x64 /home/sridhar/foo/project.json' -> Publish for all targets in project.lock.json with runtime win7-x64.
I am also adding unit tests for publish in upcoming commits.
Fixes - #185
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
Provides a few benefits:
1) The new package has the correct dependencies listed, so I removed the
-MissingDependenciesOK flag from the crossgen scripts.
2) The new compiler supports -publicSign (formerly called "OSS sign"),
which I patched through dotnet-compile-csc .
- Ported nuget package building code over from dnu. Moved that code to use NuGet v3 primitives.
- Simplified the package builder API
- Left out resources and schema detection for now
- This folder should remain self contained as the code will be copied into NuGet v3.
- Missing features include symbols packages
- Don't flood console with compilation errors
if the framework isn't installed.
- Split errors into unspecified reference assembly base path and uninstalled framework.
- Removed project path resolution from ProjectModel
- Flow output path to transitive dependencies
- Don't copy project deps to output in publish or post compile