Merge branch 'rel/1.0.0' into blackdwarf-patch-2
This commit is contained in:
commit
cbf5e241e3
489 changed files with 15394 additions and 21113 deletions
8
.gitignore
vendored
8
.gitignore
vendored
|
@ -31,6 +31,10 @@ cmake/
|
||||||
# stage0 install directory
|
# stage0 install directory
|
||||||
.dotnet_stage0
|
.dotnet_stage0
|
||||||
|
|
||||||
|
# `dotnet new` project.json.template files are generated by a pre-build step.
|
||||||
|
# ignore these files
|
||||||
|
/src/dotnet/commands/dotnet-new/**/project.json.template
|
||||||
|
|
||||||
### VisualStudio.gitignore from https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore ###
|
### VisualStudio.gitignore from https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore ###
|
||||||
|
|
||||||
## Ignore Visual Studio temporary files, build results, and
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
@ -115,10 +119,12 @@ _Chutzpah*
|
||||||
ipch/
|
ipch/
|
||||||
*.aps
|
*.aps
|
||||||
*.ncb
|
*.ncb
|
||||||
*.opensdf
|
|
||||||
*.opendb
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
*.sdf
|
*.sdf
|
||||||
*.cachefile
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
# Visual Studio profiler
|
# Visual Studio profiler
|
||||||
*.psess
|
*.psess
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
Obtaining .NET CLI
|
Obtaining .NET CLI
|
||||||
==================
|
==================
|
||||||
|
|
||||||
# Contents
|
## Contents
|
||||||
* [Overview](#overview)
|
* [Overview](#overview)
|
||||||
* [General principles](#general-principles)
|
* [General principles](#general-principles)
|
||||||
|
* [Components that can be installed](#components-that-can-be-installed)
|
||||||
|
* [Installation process](#installation-process)
|
||||||
|
* [Removal process](#removal-process)
|
||||||
|
* [Upgrading the CLI](#upgrading-the-cli)
|
||||||
|
* [Layout on disk](#layout-on-disk)
|
||||||
|
* [Native dependencies](#native-dependencies)
|
||||||
* [Channels](#channels)
|
* [Channels](#channels)
|
||||||
* [Funnels and discovery mechanisms for CLI bits](#funnels-and-discovery-mechanisms-for-cli-bits)
|
* [Funnels and discovery mechanisms for CLI bits](#funnels-and-discovery-mechanisms-for-cli-bits)
|
||||||
* [Getting Started page](#getting-started-page)
|
* [Getting Started page](#getting-started-page)
|
||||||
* [Repo landing page](#repo-landing-page)
|
* [Repo landing page](#repo-landing-page)
|
||||||
* [Dependencies](#dependencies)
|
|
||||||
* [Upgrades](#upgrades)
|
|
||||||
* [Layout on disk](#layout-on-disk)
|
|
||||||
* [Acquisition modes](#acquisition-modes)
|
* [Acquisition modes](#acquisition-modes)
|
||||||
* [Native installers](#native-installers)
|
* [Native installers](#native-installers)
|
||||||
* [Installation script](#installation-script)
|
* [Installation script](#installation-script)
|
||||||
|
@ -23,26 +26,105 @@ Obtaining .NET CLI
|
||||||
* [IDEs and editors](#ides-and-editors)
|
* [IDEs and editors](#ides-and-editors)
|
||||||
|
|
||||||
|
|
||||||
# Overview
|
## Overview
|
||||||
This document/spec outlines the CLI install experience. This covers the technologies being used for install, the principles that are driving the installation experience, the ways users are coming to the installs and what each of the installs contains, in terms of stability and similar.
|
This document/spec outlines the CLI install experience. This covers the technologies being used for install, the principles that are driving the installation experience, the ways users are coming to the installs and what each of the installs contains, in terms of stability and similar.
|
||||||
|
|
||||||
# General principles
|
## General principles
|
||||||
|
|
||||||
- Upgrades using the native installers Just Work(tm)
|
- Upgrades using the native installers Just Work(tm)
|
||||||
- All user facing materials point to the getting started page
|
- All user facing materials point to the getting started page
|
||||||
- Defaults are stable bits; users need extra effort to install nightly builds
|
- Defaults are stable bits; users need extra effort to install Future builds
|
||||||
- Only HTTPS links are allowed in any online property
|
- Only HTTPS links are allowed in any online property
|
||||||
- Provide native installers for each supported platform
|
- Provide native installers for each supported platform
|
||||||
- Provide automation-ready installers for each target platform
|
- Provide automation-ready installers for each target platform
|
||||||
|
|
||||||
# Channels
|
## Components that can be installed
|
||||||
|
Overall, there are two significant installable components:
|
||||||
|
|
||||||
|
1. The .NET Core SDK
|
||||||
|
2. Shared runtime redistributable
|
||||||
|
|
||||||
|
The .NET Core SDK contains the following items:
|
||||||
|
1. A given version of the CLI toolset
|
||||||
|
2. A given version of the shared runtime that the CLI toolset uses; this is a full shared redist, so other apps can also use target this one
|
||||||
|
|
||||||
|
The shared runtime redistributable ("the redist") contains only the packages and the shared host tied to the version of those packages.
|
||||||
|
|
||||||
|
The third component is the "multiplexer" ("muxer"), that is the shared component that is in charge of running the applications and the CLI commands. In general, although there will be an installer for this component, it should be treated as an implementation detail. We will see what that means in the next section.
|
||||||
|
|
||||||
|
## Installation process
|
||||||
|
Each of the components listed in the previous section will have an installer/package. The dependencies of the installers between themseslves are given in the table below.
|
||||||
|
|
||||||
|
| Installer | Depends on |
|
||||||
|
|----------- |------------ |
|
||||||
|
| SDK | redist |
|
||||||
|
| Redist | muxer |
|
||||||
|
| muxer | - |
|
||||||
|
|
||||||
|
The installation process will depend on the platform and the way of the install. For those installers that don't have automatic dependency resolution (Windows installer, OS X PKG) the installers will chain the installers of the components they depend on. DEB, RPM and similar will declare proper dependencies and the package manager will do the Right Thing(tm) by default.
|
||||||
|
|
||||||
|
From the table, we can see that if you install the SDK using `apt-get` for instance, you will get also a redist and a muxer. They will be separate packages, but will be declared as dependencies (similar for `yum`). Similar for the redist package.
|
||||||
|
|
||||||
|
The muxer is slightly a special case. Though there will be an installer, as mentioned in the previous section, it is an implementation detail. That means that acquiring the muxer should be done through either the SDK or the shared runtime installers. The only situation where this rule would not be true is if there was a major servicing event (e.g. a security update); in that case, the users would use the installer for the muxer directly, as we would rev its version accordingly.
|
||||||
|
|
||||||
|
The script installers are slightly different as they operate on zips/tarballs. The zip/tarball for the SDK will contain the entire set of things needed to be put on the disk.
|
||||||
|
|
||||||
|
## Removal process
|
||||||
|
Removing the bits from the machine **must** follow the order outlined above in installation. If the SDK is installed, it needs to be removed first and then the Redist and only then the muxer. Similar for the Redist.
|
||||||
|
|
||||||
|
## Upgrading the CLI
|
||||||
|
The semantics of installing the CLI will be side-by-side by default. This means that each new version will get installed besides any existing versions on disk. The [layout section](#layout-on-disk) covers how that will look like on disk.
|
||||||
|
|
||||||
|
Since this is the case, there is no special "upgrade". When the user needs a new version, the user just installs the new version using any of the installers specified in this document. The installer will just drop a new version at the predefined location.
|
||||||
|
|
||||||
|
This, however, does have one specific constraint: **newever versions must be installed in the same location the previous version was in**. This constraint is due to the fact that the "muxer" uses convention to figure out how to find the actual driver that the user reuqested.
|
||||||
|
|
||||||
|
## Layout on disk
|
||||||
|
```
|
||||||
|
~/dotnet
|
||||||
|
-dotnet (%PATH%)
|
||||||
|
-SDK
|
||||||
|
- 1.0.0
|
||||||
|
-
|
||||||
|
- 2.0.0
|
||||||
|
-Shared
|
||||||
|
-[redist framework]
|
||||||
|
-1.0.0
|
||||||
|
-coreclr.dll
|
||||||
|
-mscorlib.ni.dll <Regular NI image>
|
||||||
|
-system.*.dll <R2R NI image>
|
||||||
|
-dotnet-hostimpl.dll
|
||||||
|
-dotnet
|
||||||
|
-netcoreapp.deps.json
|
||||||
|
-1.5.0
|
||||||
|
-coreclr.dll
|
||||||
|
-mscorlib.ni.dll <Regular NI image>-
|
||||||
|
-system.*.dll <R2R NI image>
|
||||||
|
-dotnet-hostimpl.dll
|
||||||
|
-dotnet
|
||||||
|
-netcoreapp.deps.json
|
||||||
|
```
|
||||||
|
|
||||||
|
## Native dependencies
|
||||||
|
.NET Core CLI is built on top of CoreFX and CoreCLR and as such its' dependencies set is defined by the platform that those two combine. Whether or not those dependencies will be installed depends on the installer being used. The table below lists out the installers and whether or not they bring in dependencies.
|
||||||
|
|
||||||
|
| Installer | Dependencies Y/N |
|
||||||
|
|------------ |-------------------- |
|
||||||
|
| EXE | Y (chains them in) |
|
||||||
|
| PKG | N |
|
||||||
|
| apt-get | Y |
|
||||||
|
| rpm | Y |
|
||||||
|
|
||||||
|
A list of dependencies can be found on [dependency list](TBD).
|
||||||
|
|
||||||
|
## Channels
|
||||||
Channels represent a way for users who are getting the CLI to reason about the stability and quality of the bits they are getting. This is one more way for the user to be fully aware of the state the bits that are being installed are in and to set proper expectations on first use.
|
Channels represent a way for users who are getting the CLI to reason about the stability and quality of the bits they are getting. This is one more way for the user to be fully aware of the state the bits that are being installed are in and to set proper expectations on first use.
|
||||||
|
|
||||||
The table below outlines the channels:
|
The table below outlines the channels:
|
||||||
|
|
||||||
| Property | Description |
|
| Property | Description |
|
||||||
|------------------ |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|------------------ |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Nightly | Unstable bits that are "bleeding edge". Users are not expected to use this channel often, however it is there for those situations when someone needs/wants a feature that hasn't been stabilizied yet. Also, used for internal testing. |
|
| Future | Unstable bits that are "bleeding edge". Users are not expected to use this channel often, however it is there for those situations when someone needs/wants a feature that hasn't been stabilizied yet. Also, used for internal testing. |
|
||||||
| Preview | Pre-release stable builds with known issues and/or known feature gaps. We are OK with users installing these for preview purposes. |
|
| Preview | Pre-release stable builds with known issues and/or known feature gaps. We are OK with users installing these for preview purposes. |
|
||||||
| Production | Actual releases. Most users are encouraged to install these. |
|
| Production | Actual releases. Most users are encouraged to install these. |
|
||||||
|
|
||||||
|
@ -50,12 +132,12 @@ Below table shows the mapping between the channels, branches and feeds for the D
|
||||||
|
|
||||||
| Channel | Branch | Debian feed | Debian package name | NuGet version | NuGet feed |
|
| Channel | Branch | Debian feed | Debian package name | NuGet version | NuGet feed |
|
||||||
|------------ |----------- |------------- |--------------------- |--------------- |--------------------------------------- |
|
|------------ |----------- |------------- |--------------------- |--------------- |--------------------------------------- |
|
||||||
| Nightly | master | Development | dotnet-nightly | 1.0.0-dev-* | https://dotnet.myget.org/f/dotnet-cli |
|
| Future | master | Development | dotnet-future | 1.0.0-dev-* | https://dotnet.myget.org/f/dotnet-cli |
|
||||||
| Preview | rel/<ver> | Development | dotnet | 1.0.0-beta-* | https://dotnet.myget.org/f/dotnet-cli |
|
| Preview | rel/<ver> | Development | dotnet | 1.0.0-beta-* | https://dotnet.myget.org/f/dotnet-cli |
|
||||||
| Production | production/<ver> | Production | dotnet | 1.0.0 | https://api.nuget.org/v3/index.json |
|
| Production | production/<ver> | Production | dotnet | 1.0.0 | https://api.nuget.org/v3/index.json |
|
||||||
|
|
||||||
|
|
||||||
# Funnels and discovery mechanisms for CLI bits
|
## Funnels and discovery mechanisms for CLI bits
|
||||||
There are multiple ways that we will funnel users towards the installers for the CLI:
|
There are multiple ways that we will funnel users towards the installers for the CLI:
|
||||||
|
|
||||||
1. [Getting Started Page](https://aka.ms/dotnetcoregs)
|
1. [Getting Started Page](https://aka.ms/dotnetcoregs)
|
||||||
|
@ -65,7 +147,7 @@ There are multiple ways that we will funnel users towards the installers for the
|
||||||
|
|
||||||
Out of the above, the first two funnels are under the control of the CLI team so we will go into slightly more details. The rest of the funnels will use a prescribed way to get to the bits and will have guidance on what bits to use.
|
Out of the above, the first two funnels are under the control of the CLI team so we will go into slightly more details. The rest of the funnels will use a prescribed way to get to the bits and will have guidance on what bits to use.
|
||||||
|
|
||||||
## Getting Started page
|
### Getting Started page
|
||||||
The page can be found on https://aka.ms/dotnetcoregs. This is the main curated first-run funnel for the dotnet CLI. The intent of the page is to help users test out the CLI quickly and become familiar with what the platform offers. This should be the most stable and curated experience we can offer.
|
The page can be found on https://aka.ms/dotnetcoregs. This is the main curated first-run funnel for the dotnet CLI. The intent of the page is to help users test out the CLI quickly and become familiar with what the platform offers. This should be the most stable and curated experience we can offer.
|
||||||
|
|
||||||
The Getting Started page should only point users to curated install experiences that can contain only stable or LKG bits.
|
The Getting Started page should only point users to curated install experiences that can contain only stable or LKG bits.
|
||||||
|
@ -79,24 +161,13 @@ The below table shows other pertinent information for installs on the "Getting s
|
||||||
| CentOS feed | TBD
|
| CentOS feed | TBD
|
||||||
| Local install scripts | Latest from rel/1.0.0 |
|
| Local install scripts | Latest from rel/1.0.0 |
|
||||||
|
|
||||||
## Repo landing page
|
|
||||||
|
### Repo landing page
|
||||||
The repo landing page can be found on: https://github.com/dotnet/cli/readme.md. Download links on the landing page should be decreased in importance. First thing for "you want to get started" section should link to the getting started page on the marketing site. The Repo Landing Page should be used primarily by contributors to the CLI. There should be a separate page that has instructions on how to install both the latest stable as well as latest development with proper warnings around it. The separate page is to really avoid the situation from people accidentally installing unstable bits (since search engines can drop them in the repo first).
|
The repo landing page can be found on: https://github.com/dotnet/cli/readme.md. Download links on the landing page should be decreased in importance. First thing for "you want to get started" section should link to the getting started page on the marketing site. The Repo Landing Page should be used primarily by contributors to the CLI. There should be a separate page that has instructions on how to install both the latest stable as well as latest development with proper warnings around it. The separate page is to really avoid the situation from people accidentally installing unstable bits (since search engines can drop them in the repo first).
|
||||||
|
|
||||||
The source branches and other items are actually branch specific for the repo landing page. As the user switches branches, the links and badges on the page will change to reflect the builds from that branch.
|
The source branches and other items are actually branch specific for the repo landing page. As the user switches branches, the links and badges on the page will change to reflect the builds from that branch.
|
||||||
|
|
||||||
# Dependencies
|
## Acquisition modes
|
||||||
.NET Core CLI is built on top of CoreFX and CoreCLR and as such its' dependencies set is defined by the platform that those two combine. Whether or not those dependencies will be installed depends on the installer being used. On Debian, for instance, using `apt-get` will mean that the appropriate dependencies are installed. For OS X using the PKG (installer) dependencies that are not part of OS X will not be installed. So, to summarize: the CLI bundle will not carry native dependencies of CoreFX and CoreCLR with it.
|
|
||||||
|
|
||||||
A list of dependencies can be found on [dependency list](TBD).
|
|
||||||
|
|
||||||
# Upgrades and updates
|
|
||||||
**TODO**
|
|
||||||
|
|
||||||
# Layout on disk
|
|
||||||
**TODO**
|
|
||||||
|
|
||||||
|
|
||||||
# Acquisition modes
|
|
||||||
There are multiple acquisition modes that the CLI will have:
|
There are multiple acquisition modes that the CLI will have:
|
||||||
|
|
||||||
1. Native installers
|
1. Native installers
|
||||||
|
@ -106,21 +177,24 @@ There are multiple acquisition modes that the CLI will have:
|
||||||
|
|
||||||
Let's dig into some details.
|
Let's dig into some details.
|
||||||
|
|
||||||
## Native installers
|
### Native installers
|
||||||
These installation experiences are the primary way new users are getting the bits.The primary way to get information about this mode of installation is the [Getting Started page](#getting-started-page). The native installers are considered to be stable by default; this does not imply lack of bugs, but it does imply predictable behavior. They are generated from the stable branches and are never used to get the nightly bits.
|
These installation experiences are the primary way new users are getting the bits.The primary way to get information about this mode of installation is the [Getting Started page](#getting-started-page). The native installers are considered to be stable by default; this does not imply lack of bugs, but it does imply predictable behavior. They are generated from the stable branches and are never used to get the Future bits.
|
||||||
|
|
||||||
|
There are three main components that will be installed
|
||||||
|
|
||||||
The native installers are:
|
The native installers are:
|
||||||
|
|
||||||
| Platform | Installer | Status | Package name |
|
| Platform | Installer | Status | Package name |
|
||||||
|--------------------- |------------------ |---------- |-------------------- |
|
|--------------------- |------------------ |---------- |-------------------- |
|
||||||
| Windows | Bundle installer | Done | dotnet |
|
| Windows | Bundle installer | Done | dotnet-{version}; |
|
||||||
| Ubuntu 14.04/Debian | apt-get feed | Done | dotnet; dotnet-dbg |
|
| Ubuntu 14.04/Debian | apt-get feed | Done | dotnet; dotnet-dbg |
|
||||||
| OS X | PKG | Done | dotnet |
|
| OS X | PKG | Done | dotnet |
|
||||||
| OS X | Homebrew | Not done | dotnet |
|
| OS X | Homebrew | Not done | dotnet |
|
||||||
| CentOS/RH | RPM | Not done | dotnet |
|
| CentOS/RH | RPM | Not done | dotnet |
|
||||||
|
|
||||||
|
|
||||||
## Installation script
|
|
||||||
|
### Installation script
|
||||||
This approach is a shell one-liner that downloads an installation script and runs it. The installation script will download the latest zip/tarball (depending on the script used) and will unpack it to a given location. After that, the script will print out what needs to be set for the entire CLI to work (env variables, $PATH modification etc.).
|
This approach is a shell one-liner that downloads an installation script and runs it. The installation script will download the latest zip/tarball (depending on the script used) and will unpack it to a given location. After that, the script will print out what needs to be set for the entire CLI to work (env variables, $PATH modification etc.).
|
||||||
|
|
||||||
This install covers the following main scenario:
|
This install covers the following main scenario:
|
||||||
|
@ -137,38 +211,29 @@ The features the script needs to support/have are:
|
||||||
* Automatically add the install to $PATH unless --no-path/-NoPath is present
|
* Automatically add the install to $PATH unless --no-path/-NoPath is present
|
||||||
|
|
||||||
|
|
||||||
### Local installation
|
#### Installation script features
|
||||||
The local installation puts the bits in any folder on disk that the user specifies when invoking the script. The layout is pretty much the same as with native installers.
|
|
||||||
|
|
||||||
The local install can "grow up" into a global one simply by pointing the system PATH to the relevant bin folder within the layout on disk.
|
|
||||||
|
|
||||||
Acquiring the tools on the CI server would be done in the same way as on a user machine with a local install: the install script would be invoked with a given set of options and then further build scripts would actually use the tools installed in this way to do their thing (build, restore, pack/publish etc.)
|
|
||||||
|
|
||||||
The guidance is, of course, to always use the beta channel for the script, and this is what the script will have as the default option.
|
|
||||||
|
|
||||||
### Installation script features
|
|
||||||
The following arguments are needed for the installation script:
|
The following arguments are needed for the installation script:
|
||||||
|
|
||||||
| dotnet-install.sh param (Linux, OSX) | dotnet-install.ps1 param (Windows) | Defaults | Description |
|
| dotnet-install.sh param (Linux, OSX) | dotnet-install.ps1 param (Windows) | Defaults | Description |
|
||||||
|-------------------------------------- |------------------------------------ |----------------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|-------------------------------------- |------------------------------------ |----------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| --channel | -Channel | "Production" | Which channel (i.e. "nightly", "preview", "production") to install from. |
|
| --channel | -Channel | "Production" | Which channel (i.e. "Future", "preview", "production") to install from. |
|
||||||
| N/A (currently only x64 supported) | -Architecture | <bitness of the machine> | Architecture of the dotnet CLI to be installed |
|
|
||||||
| --version | -Version | global.json or Latest | Which version of CLI to install; you need to specify the version as 3-part version (i.e. 1.0.0-13232). If omitted, it will default to the first global.json that contains the sdkVersion property; if that is not present it will use Latest. |
|
| --version | -Version | global.json or Latest | Which version of CLI to install; you need to specify the version as 3-part version (i.e. 1.0.0-13232). If omitted, it will default to the first global.json that contains the sdkVersion property; if that is not present it will use Latest. |
|
||||||
| --prefix | -InstallDir | .dotnet | Path to where to install the CLI bundle. The directory is created if it doesn't exist. On Linux/OSX this directory is created in the user home directory (`$HOME`). On Windows, this directory is created in `%LocalAppData%`. |
|
| --install-dir | -InstallDir | .dotnet | Path to where to install the CLI bundle. The directory is created if it doesn't exist. On Linux/OSX this directory is created in the user home directory (`$HOME`). On Windows, this directory is created in `%LocalAppData%`. |
|
||||||
| --debug | -Debug | false | Whether to use the "fat" packages that contain debugging symbols or not. |
|
| --debug | -Debug | false | Whether to use the "fat" packages that contain debugging symbols or not. |
|
||||||
| --no-path | -NoPath | false | Export the prefix/installdir to the path for the current session. This makes CLI tools available immidiately after install. |
|
| --no-path | -NoPath | false | Export the prefix/installdir to the path for the current session. This makes CLI tools available immidiately after install. |
|
||||||
#### Install the latest nightly CLI
|
| --shared-runtime | -SharedRuntime | false | Install just the shared runtime bits, not the entire SDK. |
|
||||||
|
##### Install the latest Future CLI
|
||||||
|
|
||||||
Windows:
|
Windows:
|
||||||
```
|
```
|
||||||
./dotnet-install.ps1 -Channel nightly
|
./dotnet-install.ps1 -Channel Future
|
||||||
```
|
```
|
||||||
OSX/Linux:
|
OSX/Linux:
|
||||||
```
|
```
|
||||||
./dotnet-install.sh --channel nightly
|
./dotnet-install.sh --channel Future
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Install the latest preview to specified location
|
##### Install the latest preview to specified location
|
||||||
|
|
||||||
Windows:
|
Windows:
|
||||||
```
|
```
|
||||||
|
@ -179,31 +244,31 @@ OSX/Linux:
|
||||||
./dotnet-install.sh --channel preview --prefix ~/cli
|
./dotnet-install.sh --channel preview --prefix ~/cli
|
||||||
```
|
```
|
||||||
|
|
||||||
### Windows obtain one-liner example
|
#### Windows obtain one-liner example
|
||||||
|
|
||||||
```
|
```
|
||||||
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.ps1'))}"
|
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.ps1'))}"
|
||||||
```
|
```
|
||||||
|
|
||||||
### OSX/Linux obtain one-liner example
|
#### OSX/Linux obtain one-liner example
|
||||||
|
|
||||||
```
|
```
|
||||||
curl -sSL https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.sh | bash /dev/stdin [args]
|
curl -sSL https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.sh | bash /dev/stdin [args]
|
||||||
```
|
```
|
||||||
|
|
||||||
## Docker
|
### Docker
|
||||||
[Docker](https://docs.docker.com/) has become a pretty good way to use developer tools, from trying them out in an interactive image use to using it for deployment. We have Docker images on DockerHub already.
|
[Docker](https://docs.docker.com/) has become a pretty good way to use developer tools, from trying them out in an interactive image use to using it for deployment. We have Docker images on DockerHub already.
|
||||||
|
|
||||||
Docker images should always be updated as we make new releases. We should have Docker images of stable releases, built from the rel/* branches.
|
Docker images should always be updated as we make new releases. We should have Docker images of stable releases, built from the rel/* branches.
|
||||||
|
|
||||||
## NuGet packages
|
### NuGet packages
|
||||||
NuGet packages of the CLI bits that make sense are published to relevant feeds. The developer who wishes to use these needs to specify a version. The version is used to opt-in to the three channels above. The actuall "installation" here is restoring the package as a dependency for a certain project (i.e. `ProjectServer` or similar).
|
NuGet packages of the CLI bits that make sense are published to relevant feeds. The developer who wishes to use these needs to specify a version. The version is used to opt-in to the three channels above. The actuall "installation" here is restoring the package as a dependency for a certain project (i.e. `ProjectServer` or similar).
|
||||||
|
|
||||||
The table in the [channels section](#channels) has the examples of mapping between branches and NuGet package versions.
|
The table in the [channels section](#channels) has the examples of mapping between branches and NuGet package versions.
|
||||||
|
|
||||||
# Acquiring through other products
|
## Acquiring through other products
|
||||||
|
|
||||||
## IDEs and editors
|
### IDEs and editors
|
||||||
Anything that goes into the higher-level tools should always use a stable build of CLI coming frol rel/* branches as required.
|
Anything that goes into the higher-level tools should always use a stable build of CLI coming frol rel/* branches as required.
|
||||||
|
|
||||||
If there exist any mechanism that notifies users of updates of the CLI, it should ideally point users to the Getting Started page to acquire the installers, or, if that is deemed too heavy-handed, it should point people to the last stable release. If there is a need of the URL to be "baked in" to the higher-level tool, that URL should be an aka.ms URL because it needs to be stable on that end.
|
If there exist any mechanism that notifies users of updates of the CLI, it should ideally point users to the Getting Started page to acquire the installers, or, if that is deemed too heavy-handed, it should point people to the last stable release. If there is a need of the URL to be "baked in" to the higher-level tool, that URL should be an aka.ms URL because it needs to be stable on that end.
|
||||||
|
@ -212,3 +277,5 @@ Cross-platform IDEs/editors will work in similar way as above. The notification
|
||||||
|
|
||||||
### Visual Studio
|
### Visual Studio
|
||||||
Visual Studio will not be shipping CLI in-box. However, it will use CLI when installed. The install will be tied into other installs like WET and similar. The URL that is baked in VS should be an aka.ms URL because it needs to be stable on that end. The other, pointing end, should also be a stable URL/location.
|
Visual Studio will not be shipping CLI in-box. However, it will use CLI when installed. The install will be tied into other installs like WET and similar. The URL that is baked in VS should be an aka.ms URL because it needs to be stable on that end. The other, pointing end, should also be a stable URL/location.
|
||||||
|
|
||||||
|
|
||||||
|
|
50
Documentation/cli-prerequisites.md
Normal file
50
Documentation/cli-prerequisites.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
CLI native prerequisites
|
||||||
|
=========================
|
||||||
|
|
||||||
|
This document outlines the dependencies needed to run .NET Core CLI tools. Most of these dependencies are also .NET Core's general dependencies, so installing them will make sure that you can run applications written for .NET Core in general.
|
||||||
|
|
||||||
|
## Windows dependencies
|
||||||
|
On Windows, the only dependency is the VC++ Redistributable. Depending on the version of Windows you are running on, the versions are changing.
|
||||||
|
|
||||||
|
> **Note:** these dependencies are chained in the installer, you only need to install them manually if you are using
|
||||||
|
> the installer script (`dotnet-install.sh` or `dotnet-install.ps1`).
|
||||||
|
|
||||||
|
* Windows 10
|
||||||
|
* [Visual C++ Redistributable for Visual Studio 2015](https://www.microsoft.com/en-us/download/details.aspx?id=48145)
|
||||||
|
* Pre-Windows 10
|
||||||
|
* [Visual C++ Redistributable for Visual Studio 2012 Update 4](https://www.microsoft.com/en-us/download/confirmation.aspx?id=30679)
|
||||||
|
|
||||||
|
## Ubuntu
|
||||||
|
Ubuntu distributions require the following libraries installed:
|
||||||
|
|
||||||
|
- libunwind8
|
||||||
|
- libunwind8-dev
|
||||||
|
- gettext
|
||||||
|
- libicu-dev
|
||||||
|
- liblttng-ust-dev
|
||||||
|
- libcurl4-openssl-dev
|
||||||
|
- libssl-dev
|
||||||
|
- uuid-dev
|
||||||
|
- unzip
|
||||||
|
|
||||||
|
|
||||||
|
## CentOS
|
||||||
|
CentOS distributions require the following libraries installed:
|
||||||
|
|
||||||
|
* deltarpm
|
||||||
|
* epel-release
|
||||||
|
* unzip
|
||||||
|
* libunwind
|
||||||
|
* gettext
|
||||||
|
* libcurl-devel
|
||||||
|
* openssl-devel
|
||||||
|
* zlib
|
||||||
|
* libicu-devel
|
||||||
|
|
||||||
|
## OS X
|
||||||
|
OS X requires the following libraries and versions installed:
|
||||||
|
|
||||||
|
* libssl 1.1
|
||||||
|
|
||||||
|
## Installing the dependencies
|
||||||
|
Please follow the recommended practices of each operating system in question. For Linux, we recommend using your package manager such as `apt-get` for Ubuntu and `yum` for CentOS. For OS X and upgrading the libssl, we recommend using [Homebrew](https://brew.sh/); if you do use it, do not forget the link phase you need to do at the end of install (`brew link openssl --force`).
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
|
|
||||||
## Environment data
|
## Environment data
|
||||||
`dotnet --version` output:
|
`dotnet --info` output:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 14
|
# Visual Studio 14
|
||||||
VisualStudioVersion = 14.0.25029.0
|
VisualStudioVersion = 14.0.23107.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED2FE3E2-F7E7-4389-8231-B65123F2076F}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED2FE3E2-F7E7-4389-8231-B65123F2076F}"
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -95,6 +95,12 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.Testin
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.Testing.Abstractions.UnitTests", "test\TestingAbstractions\Microsoft.Extensions.Testing.Abstractions.UnitTests\Microsoft.Extensions.Testing.Abstractions.UnitTests.xproj", "{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}"
|
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.Testing.Abstractions.UnitTests", "test\TestingAbstractions\Microsoft.Extensions.Testing.Abstractions.UnitTests\Microsoft.Extensions.Testing.Abstractions.UnitTests.xproj", "{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestAssets", "TestAssets", "{ADA7052B-884B-4776-8B8D-D04191D0AA70}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestPackages", "TestPackages", "{1AB5B24B-B317-4142-A5D1-A6E84F15BA34}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "dotnet-dependency-tool-invoker", "TestAssets\TestPackages\dotnet-dependency-tool-invoker\dotnet-dependency-tool-invoker.xproj", "{C26A48BB-193F-450C-AB09-4D3324C78188}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -683,6 +689,22 @@ Global
|
||||||
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||||
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||||
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -727,5 +749,8 @@ Global
|
||||||
{7B0EFBB4-4669-4B83-B47C-7F3E6DB07AF9} = {EB0F5F8C-0991-49AC-B188-A9869476C7DF}
|
{7B0EFBB4-4669-4B83-B47C-7F3E6DB07AF9} = {EB0F5F8C-0991-49AC-B188-A9869476C7DF}
|
||||||
{09C61BD7-C6DB-4F89-85BF-4EB3C196049D} = {EB0F5F8C-0991-49AC-B188-A9869476C7DF}
|
{09C61BD7-C6DB-4F89-85BF-4EB3C196049D} = {EB0F5F8C-0991-49AC-B188-A9869476C7DF}
|
||||||
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D} = {EB0F5F8C-0991-49AC-B188-A9869476C7DF}
|
{DEB3AB06-FCD8-4119-B8CA-B7AA6CE2F22D} = {EB0F5F8C-0991-49AC-B188-A9869476C7DF}
|
||||||
|
{ADA7052B-884B-4776-8B8D-D04191D0AA70} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
|
||||||
|
{1AB5B24B-B317-4142-A5D1-A6E84F15BA34} = {ADA7052B-884B-4776-8B8D-D04191D0AA70}
|
||||||
|
{C26A48BB-193F-450C-AB09-4D3324C78188} = {1AB5B24B-B317-4142-A5D1-A6E84F15BA34}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -6,7 +6,4 @@
|
||||||
<add key="cli-deps" value="https://dotnet.myget.org/F/cli-deps/api/v3/index.json" />
|
<add key="cli-deps" value="https://dotnet.myget.org/F/cli-deps/api/v3/index.json" />
|
||||||
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
|
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||||
</packageSources>
|
</packageSources>
|
||||||
<activePackageSource>
|
|
||||||
<add key="AspNetCIDev" value="https://www.myget.org/F/aspnetcidev/api/v3/index.json" />
|
|
||||||
</activePackageSource>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
34
README.md
34
README.md
|
@ -22,17 +22,22 @@ Build Status
|
||||||
|:------:|:------:|:------:|:------:|:------:|:------:|
|
|:------:|:------:|:------:|:------:|:------:|:------:|
|
||||||
|![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/601/badge)|![](https://mseng.visualstudio.com/DefaultCollection/_apis/public/build/definitions/d09b7a4d-0a51-4c0e-a15a-07921d5b558f/3022/badge)|![](https://mseng.visualstudio.com/DefaultCollection/_apis/public/build/definitions/d09b7a4d-0a51-4c0e-a15a-07921d5b558f/3071/badge)|![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/600/badge) |![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/597/badge) |![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/897/badge) |
|
|![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/601/badge)|![](https://mseng.visualstudio.com/DefaultCollection/_apis/public/build/definitions/d09b7a4d-0a51-4c0e-a15a-07921d5b558f/3022/badge)|![](https://mseng.visualstudio.com/DefaultCollection/_apis/public/build/definitions/d09b7a4d-0a51-4c0e-a15a-07921d5b558f/3071/badge)|![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/600/badge) |![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/597/badge) |![](https://devdiv.visualstudio.com/DefaultCollection/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/897/badge) |
|
||||||
|
|
||||||
SDK Installers
|
Installers and Binaries
|
||||||
----------
|
-----------------------
|
||||||
|
|
||||||
| |Version |.NET Core Installers|.NET Core Cli Installers|.NET Core Binaries|.NET Core Cli Binaries|
|
You can download .NET Core as either an installer (MSI, PKG) or a zip (zip, gzip). You can download the product in two flavours:
|
||||||
|
|
||||||
|
- .NET Core - .NET Core runtime and framework
|
||||||
|
- .NET Core SDK - .NET Core + CLI tools
|
||||||
|
|
||||||
|
| |Version |.NET Core Installer|.NET Core SDK Installer|.NET Core Binaries|.NET Core SDK Binaries|
|
||||||
|---------|:------:|:------:|:------:|:------:|:------:|
|
|---------|:------:|:------:|:------:|:------:|:------:|
|
||||||
|**Windows x64**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Windows_x64_Release_version_badge.svg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-win-x64.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-win-x64.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-win-x64.latest.zip)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-win-x64.latest.zip)|
|
|**Windows x64**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Windows_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.win.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-win-x64.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-win-x64.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-win-x64.latest.zip)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-win-x64.latest.zip)|
|
||||||
|**Windows x86**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Windows_x86_Release_version_badge.svg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-win-x86.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-win-x86.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-win-x86.latest.zip)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-win-x86.latest.zip)|
|
|**Windows x86**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Windows_x86_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.win.x86.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-win-x86.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-win-x86.latest.exe)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-win-x86.latest.zip)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-win-x86.latest.zip)|
|
||||||
|**Ubuntu 14.04**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)|*See Below*|*See Below*|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-ubuntu-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)|
|
|**Ubuntu 14.04**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.ubuntu.x64.version)|*See Below*|*See Below*|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-ubuntu-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)|
|
||||||
|**Mac OS X**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/OSX_x64_Release_version_badge.svg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-osx-x64.latest.pkg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-osx-x64.latest.pkg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-osx-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-osx-x64.latest.tar.gz)|
|
|**Mac OS X**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/OSX_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.osx.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-osx-x64.latest.pkg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-osx-x64.latest.pkg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-osx-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-osx-x64.latest.tar.gz)|
|
||||||
|**CentOS 7.1**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/CentOS_x64_Release_version_badge.svg)|N/A |N/A |[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-centos-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-centos-x64.latest.tar.gz)|
|
|**CentOS 7.1**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/CentOS_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.centos.x64.version)|N/A |N/A |[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-centos-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-centos-x64.latest.tar.gz)|
|
||||||
|**RHEL 7.2**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/RHEL_x64_Release_version_badge.svg)|N/A |N/A |[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-centos-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-rhel-x64.latest.tar.gz) |
|
|**RHEL 7.2**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/RHEL_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.rhel.x64.version)|N/A |N/A |[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-centos-x64.latest.tar.gz)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-rhel-x64.latest.tar.gz) |
|
||||||
|
|
||||||
Ubuntu Installers
|
Ubuntu Installers
|
||||||
----------
|
----------
|
||||||
|
@ -41,9 +46,9 @@ Ubuntu Installers
|
||||||
|
|
||||||
| |Version |Installers|
|
| |Version |Installers|
|
||||||
|---------|:------:|:------:|:------:|
|
|---------|:------:|:------:|:------:|
|
||||||
|**Shared Host**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-host-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)|
|
|**Shared Host**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.ubuntu.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-host-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)|
|
||||||
|**Shared Framework**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-sharedframework-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-ubuntu-x64.latest.tar.gz)|
|
|**Shared Framework**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.ubuntu.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-sharedframework-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-ubuntu-x64.latest.tar.gz)|
|
||||||
|**Sdk**|![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-sdk-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)|
|
|**Sdk**|[![](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/beta/dnvm/latest.ubuntu.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-sdk-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)|
|
||||||
|
|
||||||
|
|
||||||
Interested in .NET Core + ASP.NET Core 1.0 RC1 bits?
|
Interested in .NET Core + ASP.NET Core 1.0 RC1 bits?
|
||||||
|
@ -91,3 +96,8 @@ Questions & Comments
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
For any and all feedback, please use the Issues on this repository.
|
For any and all feedback, please use the Issues on this repository.
|
||||||
|
|
||||||
|
License
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
By downloading the .zip you are agreeing to the terms in the project [EULA](https://aka.ms/dotnet-cli-eula).
|
|
@ -1,5 +1,8 @@
|
||||||
.NET Command Line Interface uses third-party libraries or other resources that may be
|
.NET Core uses third-party libraries or other resources that may be
|
||||||
distributed under licenses different than the .NET Command Line Interface software.
|
distributed under licenses different than the .NET Core software.
|
||||||
|
|
||||||
|
Attributions and licence notices for test cases originally authored by
|
||||||
|
third parties can be found in the respective test directories.
|
||||||
|
|
||||||
In the event that we accidentally failed to list a required notice, please
|
In the event that we accidentally failed to list a required notice, please
|
||||||
bring it to our attention. Post an issue or email us:
|
bring it to our attention. Post an issue or email us:
|
||||||
|
@ -8,12 +11,31 @@ bring it to our attention. Post an issue or email us:
|
||||||
|
|
||||||
The attached notices are provided for information only.
|
The attached notices are provided for information only.
|
||||||
|
|
||||||
License notice for DNX
|
License notice for RFC 3492
|
||||||
----------------------
|
---------------------------
|
||||||
|
|
||||||
https://github.com/aspnet/dnx
|
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
||||||
|
|
||||||
Copyright (c) .NET Foundation. All rights reserved.
|
This document and translations of it may be copied and furnished to
|
||||||
|
others, and derivative works that comment on or otherwise explain it
|
||||||
|
or assist in its implementation may be prepared, copied, published
|
||||||
|
and distributed, in whole or in part, without restriction of any
|
||||||
|
kind, provided that the above copyright notice and this paragraph are
|
||||||
|
included on all such copies and derivative works. However, this
|
||||||
|
document itself may not be modified in any way, such as by removing
|
||||||
|
the copyright notice or references to the Internet Society or other
|
||||||
|
Internet organizations, except as needed for the purpose of
|
||||||
|
developing Internet standards in which case the procedures for
|
||||||
|
copyrights defined in the Internet Standards process must be
|
||||||
|
followed, or as required to translate it into languages other than
|
||||||
|
English.
|
||||||
|
|
||||||
This software program is licensed subject to the Apache License, Version 2.0 available at
|
The limited permissions granted above are perpetual and will not be
|
||||||
http://www.apache.org/licenses/LICENSE-2.0.
|
revoked by the Internet Society or its successors or assigns.
|
||||||
|
|
||||||
|
This document and the information contained herein is provided on an
|
||||||
|
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||||||
|
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||||||
|
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace ConsoleApplication
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Hello World!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"dotnet-desktop-and-portable": "1.0.0-*"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard1.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"portable-net45+win8",
|
||||||
|
"dnxcore50"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"net451": {}
|
||||||
|
},
|
||||||
|
"tools": {
|
||||||
|
"dotnet-dependency-tool-invoker": {
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"imports": [
|
||||||
|
"dnxcore50",
|
||||||
|
"portable-net45+win8"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"projects": [ ".", "../../src" ]
|
|
||||||
}
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"exports": {
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"frameworks": {
|
||||||
|
"net46": {
|
||||||
|
"dependencies": {
|
||||||
|
"ClassLibrary1": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3": {
|
||||||
|
"target": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"locked": false,
|
||||||
|
"version": 2,
|
||||||
|
"targets": {
|
||||||
|
".NETFramework,Version=v4.6": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x64": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x86": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary1/ClassLibrary1.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary2/ClassLibrary2.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary3/ClassLibrary3.csproj"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"": [],
|
||||||
|
".NETFramework,Version=v4.6": [
|
||||||
|
"ClassLibrary1",
|
||||||
|
"ClassLibrary2",
|
||||||
|
"ClassLibrary3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"exports": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.5.2",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"frameworks": {
|
||||||
|
"net46": {
|
||||||
|
"dependencies": {
|
||||||
|
"ClassLibrary1": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3": {
|
||||||
|
"target": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"locked": false,
|
||||||
|
"version": 2,
|
||||||
|
"targets": {
|
||||||
|
".NETFramework,Version=v4.6": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x64": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x86": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary1/ClassLibrary1.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary2/ClassLibrary2.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary3/ClassLibrary3.csproj"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"": [],
|
||||||
|
".NETFramework,Version=v4.6": [
|
||||||
|
"ClassLibrary1",
|
||||||
|
"ClassLibrary2",
|
||||||
|
"ClassLibrary3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"frameworks": {
|
||||||
|
"net46": {
|
||||||
|
"dependencies": {
|
||||||
|
"ClassLibrary1": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3": {
|
||||||
|
"target": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"locked": false,
|
||||||
|
"version": 2,
|
||||||
|
"targets": {
|
||||||
|
".NETFramework,Version=v4.6": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x64": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x86": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary1/ClassLibrary1.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary2/ClassLibrary2.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary3/ClassLibrary3.csproj"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"": [],
|
||||||
|
".NETFramework,Version=v4.6": [
|
||||||
|
"ClassLibrary1",
|
||||||
|
"ClassLibrary2",
|
||||||
|
"ClassLibrary3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"exports": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.5.2",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
TestAssets/LockFiles/ExportFiles/valid/project.json
Normal file
22
TestAssets/LockFiles/ExportFiles/valid/project.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"frameworks": {
|
||||||
|
"net46": {
|
||||||
|
"dependencies": {
|
||||||
|
"ClassLibrary1": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3": {
|
||||||
|
"target": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
61
TestAssets/LockFiles/ExportFiles/valid/project.lock.json
Normal file
61
TestAssets/LockFiles/ExportFiles/valid/project.lock.json
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"locked": false,
|
||||||
|
"version": 2,
|
||||||
|
"targets": {
|
||||||
|
".NETFramework,Version=v4.6": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x64": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x86": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary1/ClassLibrary1.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary2/ClassLibrary2.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary3/ClassLibrary3.csproj"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"": [],
|
||||||
|
".NETFramework,Version=v4.6": [
|
||||||
|
"ClassLibrary1",
|
||||||
|
"ClassLibrary2",
|
||||||
|
"ClassLibrary3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"exports": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.5.2",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"frameworks": {
|
||||||
|
"net46": { }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"locked": false,
|
||||||
|
"version": 2,
|
||||||
|
"targets": {
|
||||||
|
".NETFramework,Version=v4.6": { }
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"": [],
|
||||||
|
".NETFramework,Version=v4.6": []
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"EmptyLibrary": "1.0.0-*"
|
"EmptyLibrary": "1.0.0-*"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
"imports": "dnxcore50",
|
"imports": "dnxcore50",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dnx451": {}
|
"dnx451": {}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"netstandard1.3": {
|
"netstandard1.3": {
|
||||||
"imports": "dnxcore50",
|
"imports": "dnxcore50",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Misc.DthTestProjects.SimpleConsoleApp
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public int Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Hello, world.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"dependencies": {},
|
||||||
|
"frameworks": {
|
||||||
|
"netcoreapp1.0": {
|
||||||
|
"imports": "dnxcore50",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json": "8.0.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
"imports": "dnxcore50",
|
"imports": "dnxcore50",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"Microsoft.Web.Administration": "7.0.0"
|
"Microsoft.Web.Administration": "7.0.0"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"dnxcore50": {}
|
"dnxcore50": {}
|
||||||
|
|
3
TestAssets/ProjectModelServer/MSBuildReferencesProjects/.gitignore
vendored
Normal file
3
TestAssets/ProjectModelServer/MSBuildReferencesProjects/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Negates the lock file
|
||||||
|
# MSBuiild references' project model server tests requires these lock files, since they can't be created without VS tooling.
|
||||||
|
!project.lock.json
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ClassLibrary1
|
||||||
|
{
|
||||||
|
public class Class1
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{FD073258-550B-4E57-86AE-DC4874015EB1}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>ClassLibrary1</RootNamespace>
|
||||||
|
<AssemblyName>ClassLibrary1</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Class1.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("ClassLibrary1")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("ClassLibrary1")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("fd073258-550b-4e57-86ae-dc4874015eb1")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net452" />
|
||||||
|
</packages>
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ClassLibrary2
|
||||||
|
{
|
||||||
|
public class Class1
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>0f2d2a48-e867-496c-85a7-e97b64cfeda4</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>ClassLibrary2</RootNamespace>
|
||||||
|
<AssemblyName>ClassLibrary2</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Core"/>
|
||||||
|
<Reference Include="System.Xml.Linq"/>
|
||||||
|
<Reference Include="System.Data.DataSetExtensions"/>
|
||||||
|
|
||||||
|
|
||||||
|
<Reference Include="Microsoft.CSharp"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Data"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Net.Http"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Xml"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Class1.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("ClassLibrary2")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("ClassLibrary2")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("0f2d2a48-e867-496c-85a7-e97b64cfeda4")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ClassLibrary3
|
||||||
|
{
|
||||||
|
public class Class1
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>428e95cb-8435-414b-a313-9d734c633b3e</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>ClassLibrary3</RootNamespace>
|
||||||
|
<AssemblyName>ClassLibrary3</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Core"/>
|
||||||
|
<Reference Include="System.Xml.Linq"/>
|
||||||
|
<Reference Include="System.Data.DataSetExtensions"/>
|
||||||
|
|
||||||
|
|
||||||
|
<Reference Include="Microsoft.CSharp"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Data"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Net.Http"/>
|
||||||
|
|
||||||
|
<Reference Include="System.Xml"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Class1.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("ClassLibrary3")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("ClassLibrary3")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("428e95cb-8435-414b-a313-9d734c633b3e")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,53 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 14
|
||||||
|
VisualStudioVersion = 14.0.25029.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1443ACE0-3065-4C20-AD59-D561798AE0A5}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0AE82780-22C8-4DC8-8F1E-86977FDD092F}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
global.json = global.json
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ConsoleApp13", "src\ConsoleApp13\ConsoleApp13.xproj", "{767D3038-AC3A-4722-B21F-F85F2CBC3AA3}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{FD073258-550B-4E57-86AE-DC4874015EB1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary2", "ClassLibrary2\ClassLibrary2.csproj", "{0F2D2A48-E867-496C-85A7-E97B64CFEDA4}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary3", "ClassLibrary3\ClassLibrary3.csproj", "{428E95CB-8435-414B-A313-9D734C633B3E}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{767D3038-AC3A-4722-B21F-F85F2CBC3AA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{767D3038-AC3A-4722-B21F-F85F2CBC3AA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{767D3038-AC3A-4722-B21F-F85F2CBC3AA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{767D3038-AC3A-4722-B21F-F85F2CBC3AA3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{FD073258-550B-4E57-86AE-DC4874015EB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{FD073258-550B-4E57-86AE-DC4874015EB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{FD073258-550B-4E57-86AE-DC4874015EB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{FD073258-550B-4E57-86AE-DC4874015EB1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0F2D2A48-E867-496C-85A7-E97B64CFEDA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0F2D2A48-E867-496C-85A7-E97B64CFEDA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0F2D2A48-E867-496C-85A7-E97B64CFEDA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0F2D2A48-E867-496C-85A7-E97B64CFEDA4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{428E95CB-8435-414B-A313-9D734C633B3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{428E95CB-8435-414B-A313-9D734C633B3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{428E95CB-8435-414B-A313-9D734C633B3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{428E95CB-8435-414B-A313-9D734C633B3E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{767D3038-AC3A-4722-B21F-F85F2CBC3AA3} = {1443ACE0-3065-4C20-AD59-D561798AE0A5}
|
||||||
|
{FD073258-550B-4E57-86AE-DC4874015EB1} = {1443ACE0-3065-4C20-AD59-D561798AE0A5}
|
||||||
|
{0F2D2A48-E867-496C-85A7-E97B64CFEDA4} = {1443ACE0-3065-4C20-AD59-D561798AE0A5}
|
||||||
|
{428E95CB-8435-414B-A313-9D734C633B3E} = {1443ACE0-3065-4C20-AD59-D561798AE0A5}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"projects": [ "src", "test" ]
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>767d3038-ac3a-4722-b21f-f85f2cbc3aa3</ProjectGuid>
|
||||||
|
<RootNamespace>ConsoleApp13</RootNamespace>
|
||||||
|
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||||
|
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\</OutputPath>
|
||||||
|
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\ClassLibrary1\ClassLibrary1.csproj" />
|
||||||
|
<ProjectReference Include="..\..\ClassLibrary2\ClassLibrary2.csproj" />
|
||||||
|
<ProjectReference Include="..\..\ClassLibrary3\ClassLibrary3.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ConsoleApp13
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
var q = new ClassLibrary1.Class1();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("ConsoleApp13")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("767d3038-ac3a-4722-b21f-f85f2cbc3aa3")]
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"exports": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.5.2",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"../packages/Newtonsoft.Json.8.0.3/lib/net45/Newtonsoft.Json.dll": {},
|
||||||
|
"bin/Debug/ClassLibrary1.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary2.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETFramework,Version=v4.6",
|
||||||
|
"compile": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/Debug/ClassLibrary3.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"frameworks": {
|
||||||
|
"net46": {
|
||||||
|
"dependencies": {
|
||||||
|
"ClassLibrary1": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2": {
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3": {
|
||||||
|
"target": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"locked": false,
|
||||||
|
"version": 2,
|
||||||
|
"targets": {
|
||||||
|
".NETFramework,Version=v4.6": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x64": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
".NETFramework,Version=v4.6/win7-x86": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"ClassLibrary1/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary1/ClassLibrary1.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary2/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary2/ClassLibrary2.csproj"
|
||||||
|
},
|
||||||
|
"ClassLibrary3/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"msbuildProject": "../../ClassLibrary3/ClassLibrary3.csproj"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"": [],
|
||||||
|
".NETFramework,Version=v4.6": [
|
||||||
|
"ClassLibrary1",
|
||||||
|
"ClassLibrary2",
|
||||||
|
"ClassLibrary3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net45": {
|
||||||
|
"frameworkAssemblies": {
|
||||||
|
"mscorlib": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
23
TestAssets/ProjectWithTests/project.json
Normal file
23
TestAssets/ProjectWithTests/project.json
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
},
|
||||||
|
"System.Linq.Expressions": "4.0.11-rc2-24008",
|
||||||
|
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24008",
|
||||||
|
"xunit": "2.1.0",
|
||||||
|
"dotnet-test-xunit": "1.0.0-dev-140469-38"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netcoreapp1.0": {
|
||||||
|
"imports": [
|
||||||
|
"netstandardapp1.5",
|
||||||
|
"dnxcore50",
|
||||||
|
"portable-net45+win8"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"testRunner": "xunit"
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.Extensions.DependencyModel;
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.Tools.DependencyContextTest
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static int Main(string[] args)
|
||||||
|
{
|
||||||
|
if(args.Length > 0 && args[0] == "--debug")
|
||||||
|
{
|
||||||
|
Console.WriteLine("Waiting for Debugger to attach, press ENTER to continue");
|
||||||
|
Console.WriteLine($"Process ID: {System.Diagnostics.Process.GetCurrentProcess().Id}");
|
||||||
|
Console.ReadLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(DependencyContext.Default != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("DependencyContext.Default is set!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine("DependencyContext.Default is NULL!");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(DependencyContext.Default.RuntimeGraph.Any())
|
||||||
|
{
|
||||||
|
Console.WriteLine("DependencyContext.Default.RuntimeGraph has items!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("DependencyContext.Default.RuntimeGraph is empty!");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("Tests succeeded!");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0.25123" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0.25123</VisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>55fba85c-ce60-4f98-8e97-bb9196e893f9</ProjectGuid>
|
||||||
|
<RootNamespace>dotnet-dependency-context-test</RootNamespace>
|
||||||
|
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||||
|
<OutputPath Condition="'$(OutputPath)'=='' ">..\artifacts\</OutputPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-24008"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyModel": "1.0.0-*"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard1.5": {
|
||||||
|
"imports": [
|
||||||
|
"dnxcore50",
|
||||||
|
"portable-net45+win8"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,117 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.Dnx.Runtime.Common.CommandLine;
|
||||||
|
using Microsoft.DotNet.Cli.Utils;
|
||||||
|
using NuGet.Frameworks;
|
||||||
|
using static System.Int32;
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.Tools.DependencyInvoker
|
||||||
|
{
|
||||||
|
public class DotnetBaseParams
|
||||||
|
{
|
||||||
|
private readonly CommandLineApplication _app;
|
||||||
|
|
||||||
|
private CommandOption _outputOption;
|
||||||
|
private CommandOption _buildBasePath;
|
||||||
|
private CommandOption _frameworkOption;
|
||||||
|
private CommandOption _runtimeOption;
|
||||||
|
private CommandOption _configurationOption;
|
||||||
|
private CommandOption _projectPath;
|
||||||
|
private CommandArgument _command;
|
||||||
|
|
||||||
|
public string Runtime { get; set; }
|
||||||
|
|
||||||
|
public string Config { get; set; }
|
||||||
|
|
||||||
|
public string BuildBasePath { get; set; }
|
||||||
|
|
||||||
|
public string Output { get; set; }
|
||||||
|
|
||||||
|
public string ProjectPath { get; set; }
|
||||||
|
|
||||||
|
public NuGetFramework Framework { get; set; }
|
||||||
|
|
||||||
|
public string Command {get; set; }
|
||||||
|
|
||||||
|
public List<string> RemainingArguments { get; set; }
|
||||||
|
|
||||||
|
public DotnetBaseParams(string name, string fullName, string description)
|
||||||
|
{
|
||||||
|
_app = new CommandLineApplication(false)
|
||||||
|
{
|
||||||
|
Name = name,
|
||||||
|
FullName = fullName,
|
||||||
|
Description = description
|
||||||
|
};
|
||||||
|
|
||||||
|
AddDotnetBaseParameters();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Parse(string[] args)
|
||||||
|
{
|
||||||
|
_app.OnExecute(() =>
|
||||||
|
{
|
||||||
|
// Locate the project and get the name and full path
|
||||||
|
ProjectPath = _projectPath.Value();
|
||||||
|
Output = _outputOption.Value();
|
||||||
|
BuildBasePath = _buildBasePath.Value();
|
||||||
|
Config = _configurationOption.Value() ?? Constants.DefaultConfiguration;
|
||||||
|
Runtime = _runtimeOption.Value();
|
||||||
|
if (_frameworkOption.HasValue())
|
||||||
|
{
|
||||||
|
Framework = NuGetFramework.Parse(_frameworkOption.Value());
|
||||||
|
}
|
||||||
|
Command = _command.Value;
|
||||||
|
RemainingArguments = _app.RemainingArguments;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(ProjectPath))
|
||||||
|
{
|
||||||
|
ProjectPath = Directory.GetCurrentDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
_app.Execute(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddDotnetBaseParameters()
|
||||||
|
{
|
||||||
|
_app.HelpOption("-?|-h|--help");
|
||||||
|
|
||||||
|
_configurationOption = _app.Option(
|
||||||
|
"-c|--configuration <CONFIGURATION>",
|
||||||
|
"Configuration under which to build",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
|
_outputOption = _app.Option(
|
||||||
|
"-o|--output <OUTPUT_DIR>",
|
||||||
|
"Directory in which to find the binaries to be run",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
|
_buildBasePath = _app.Option(
|
||||||
|
"-b|--build-base-path <OUTPUT_DIR>",
|
||||||
|
"Directory in which to find temporary outputs",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
|
_frameworkOption = _app.Option(
|
||||||
|
"-f|--framework <FRAMEWORK>",
|
||||||
|
"Looks for test binaries for a specific framework",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
|
_runtimeOption = _app.Option(
|
||||||
|
"-r|--runtime <RUNTIME_IDENTIFIER>",
|
||||||
|
"Look for test binaries for a for the specified runtime",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
|
_projectPath = _app.Option(
|
||||||
|
"-p|--project-path <PROJECT_JSON_PATH>",
|
||||||
|
"Path to Project.json that contains the tool dependency",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
|
_command = _app.Argument(
|
||||||
|
"<COMMAND>",
|
||||||
|
"The command to execute.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,83 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.DotNet.ProjectModel;
|
||||||
|
using Microsoft.DotNet.Cli.Utils;
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.Tools.DependencyInvoker
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
DebugHelper.HandleDebugSwitch(ref args);
|
||||||
|
|
||||||
|
var dotnetParams = new DotnetBaseParams("dotnet-dependency-tool-invoker", "DotNet Dependency Tool Invoker", "Invokes tools declared as NuGet dependencies of a project");
|
||||||
|
|
||||||
|
dotnetParams.Parse(args);
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(dotnetParams.Command))
|
||||||
|
{
|
||||||
|
Console.WriteLine("A command name must be provided");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var projectContexts =
|
||||||
|
CreateProjectContexts(dotnetParams.ProjectPath)
|
||||||
|
.Where(p => dotnetParams.Framework == null ||
|
||||||
|
dotnetParams.Framework.GetShortFolderName()
|
||||||
|
.Equals(p.TargetFramework.GetShortFolderName()));
|
||||||
|
|
||||||
|
var commandFactory =
|
||||||
|
new ProjectDependenciesCommandFactory(
|
||||||
|
dotnetParams.Framework,
|
||||||
|
dotnetParams.Config,
|
||||||
|
dotnetParams.Output,
|
||||||
|
dotnetParams.BuildBasePath,
|
||||||
|
projectContexts.First().ProjectDirectory);
|
||||||
|
|
||||||
|
foreach (var projectContext in projectContexts)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Invoking '{dotnetParams.Command}' for '{projectContext.TargetFramework}'.");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var exitCode = commandFactory.Create(
|
||||||
|
$"dotnet-{dotnetParams.Command}",
|
||||||
|
dotnetParams.RemainingArguments,
|
||||||
|
projectContext.TargetFramework,
|
||||||
|
dotnetParams.Config)
|
||||||
|
.ForwardStdErr()
|
||||||
|
.ForwardStdOut()
|
||||||
|
.Execute()
|
||||||
|
.ExitCode;
|
||||||
|
|
||||||
|
Console.WriteLine($"Command returned {exitCode}");
|
||||||
|
}
|
||||||
|
catch (CommandUnknownException)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Command not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IEnumerable<ProjectContext> CreateProjectContexts(string projectPath = null)
|
||||||
|
{
|
||||||
|
projectPath = projectPath ?? Directory.GetCurrentDirectory();
|
||||||
|
|
||||||
|
if (!projectPath.EndsWith(Project.FileName))
|
||||||
|
{
|
||||||
|
projectPath = Path.Combine(projectPath, Project.FileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!File.Exists(projectPath))
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException($"{projectPath} does not exist.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return ProjectContext.CreateContextForEachFramework(projectPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0.23107" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0.23107</VisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>c26a48bb-193f-450c-ab09-4d3324c78188</ProjectGuid>
|
||||||
|
<RootNamespace>dotnet-dependency-tool-invoker</RootNamespace>
|
||||||
|
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||||
|
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
},
|
||||||
|
"Microsoft.DotNet.Cli.Utils": "1.0.0-*",
|
||||||
|
"Microsoft.DotNet.ProjectModel": "1.0.0-*",
|
||||||
|
"Microsoft.DotNet.Compiler.Common": "1.0.0-*",
|
||||||
|
"Microsoft.Extensions.CommandLineUtils.Sources": {
|
||||||
|
"type": "build",
|
||||||
|
"version": "1.0.0-rc2-16453"
|
||||||
|
},
|
||||||
|
"System.CommandLine": "0.1.0-e160323-1"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard1.5": {
|
||||||
|
"imports": [
|
||||||
|
"portable-net45+win8",
|
||||||
|
"dnxcore50"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace ConsoleApplication
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
#if NET451
|
||||||
|
Console.WriteLine($"Hello {string.Join(" ", args)} From .NETFramework,Version=v4.5.1");
|
||||||
|
#elif NETSTANDARD1_5
|
||||||
|
Console.WriteLine($"Hello {string.Join(" ", args)} From .NETStandardApp,Version=v1.5");
|
||||||
|
#endif
|
||||||
|
var currentAssemblyPath = typeof(ConsoleApplication.Program).GetTypeInfo().Assembly.Location;
|
||||||
|
Console.WriteLine($"Current Assembly Directory - {currentAssemblyPath}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard1.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"portable-net45+win8",
|
||||||
|
"dnxcore50"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"net451": {}
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.NETCore.App": {
|
"Microsoft.NETCore.App": {
|
||||||
"type": "platform",
|
"type": "platform",
|
||||||
"version": "1.0.0-rc2-23925"
|
"version": "1.0.0-rc2-*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
12
TestAssets/TestProjects/AppWithBomGlobalJson/Program.cs
Normal file
12
TestAssets/TestProjects/AppWithBomGlobalJson/Program.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace ConsoleApplication
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Hello World!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
TestAssets/TestProjects/AppWithBomGlobalJson/global.json
Normal file
1
TestAssets/TestProjects/AppWithBomGlobalJson/global.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -3,17 +3,18 @@
|
||||||
"compilationOptions": {
|
"compilationOptions": {
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"compilerName": "fsc",
|
|
||||||
"compileFiles": [
|
|
||||||
"Program.fs"
|
|
||||||
],
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-151221",
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
"imports": "dnxcore50"
|
"imports": "dnxcore50"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"tools": {
|
||||||
|
"dotnet-portable": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"target": "package"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"dotnet-hello": {
|
"dotnet-hello": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"target": "package"
|
"target": "package"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
},
|
},
|
||||||
"testRunner": "must-be-specified-to-generate-deps",
|
"testRunner": "must-be-specified-to-generate-deps",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"dotnet-hello": {
|
"dotnet-hello": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"target": "package"
|
"target": "package"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"preserveCompilationContext": true
|
"preserveCompilationContext": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.0.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925"
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
|
|
15
TestAssets/TestProjects/DependencyContextFromTool/Program.cs
Normal file
15
TestAssets/TestProjects/DependencyContextFromTool/Program.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace DependencyContextFromTool
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Hi!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
"dependencies": {},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandardapp1.5": {
|
||||||
|
"imports": [
|
||||||
|
"dnxcore50",
|
||||||
|
"portable-net45+win8"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-24008"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tools": {
|
||||||
|
"dotnet-dependency-context-test": {
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"imports": [ "dnxcore50" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,6 +44,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
var resolvedPaths = compilationLibrary.ResolveReferencePaths();
|
var resolvedPaths = compilationLibrary.ResolveReferencePaths();
|
||||||
foreach (var resolvedPath in resolvedPaths)
|
foreach (var resolvedPath in resolvedPaths)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine($"Compilation {compilationLibrary.Name}:{Path.GetFileName(resolvedPath)}");
|
||||||
if (!File.Exists(resolvedPath))
|
if (!File.Exists(resolvedPath))
|
||||||
{
|
{
|
||||||
Error($"Compilataion library resolved to non existent path {resolvedPath}");
|
Error($"Compilataion library resolved to non existent path {resolvedPath}");
|
||||||
|
@ -55,11 +56,17 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
foreach (var runtimeLibrary in context.RuntimeLibraries)
|
foreach (var runtimeLibrary in context.RuntimeLibraries)
|
||||||
{
|
{
|
||||||
CheckMetadata(runtimeLibrary);
|
CheckMetadata(runtimeLibrary);
|
||||||
|
foreach (var native in runtimeLibrary.GetDefaultNativeAssets(context)) {}
|
||||||
|
foreach (var assembly in runtimeLibrary.GetDefaultAssemblyNames(context)) {
|
||||||
|
Console.WriteLine($"Runtime {runtimeLibrary.Name}:{assembly.Name}");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var native in context.GetDefaultNativeAssets()) {}
|
||||||
|
|
||||||
foreach (var name in context.GetDefaultAssemblyNames())
|
foreach (var name in context.GetDefaultAssemblyNames())
|
||||||
{
|
{
|
||||||
var assembly = Assembly.Load(new AssemblyName(name));
|
var assembly = Assembly.Load(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,18 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0-*",
|
"version": "1.0.0-*",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
|
||||||
"Microsoft.Extensions.DependencyModel": {
|
"Microsoft.Extensions.DependencyModel": {
|
||||||
"target": "project",
|
"target": "project",
|
||||||
"version": "1.0.0-*"
|
"version": "1.0.0-*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandard1.5": {
|
||||||
"imports": "dnxcore50"
|
"imports": "dnxcore50",
|
||||||
|
"dependencies": {
|
||||||
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"net451": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"preserveCompilationContext": true
|
"preserveCompilationContext": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"DependencyContextValidator": "1.0.0-*"
|
"DependencyContextValidator": "1.0.0-*"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"emitEntryPoint": true
|
"emitEntryPoint": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"DependencyContextValidator": "1.0.0-*"
|
"DependencyContextValidator": "1.0.0-*"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TestApp
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Microsoft.Extensions.DependencyModel.DependencyContextValidator.Validate(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true,
|
||||||
|
"preserveCompilationContext": true
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"DependencyContextValidator": "1.0.0-*"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net451": {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TestApp
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Microsoft.Extensions.DependencyModel.DependencyContextValidator.Validate(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true,
|
||||||
|
"preserveCompilationContext": true
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
},
|
||||||
|
"DependencyContextValidator": "1.0.0-*"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard1.5": {
|
||||||
|
"imports": "dnxcore50"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TestApp
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Microsoft.Extensions.DependencyModel.DependencyContextValidator.Validate(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,15 +6,13 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.NETCore.App": {
|
"Microsoft.NETCore.App": {
|
||||||
"type": "platform",
|
"type": "platform",
|
||||||
"version": "1.0.0-rc2-23925"
|
"version": "1.0.0-rc2-*"
|
||||||
}
|
},
|
||||||
|
"DependencyContextValidator": "1.0.0-*"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandard1.5": {
|
"netstandard1.5": {
|
||||||
"imports": [
|
"imports": "dnxcore50"
|
||||||
"portable-net45+win8",
|
|
||||||
"dnxcore50"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
"compilerName": "fsc",
|
||||||
|
"compileFiles": [
|
||||||
|
"Program.fs"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-151221",
|
||||||
|
"NETStandard.Library": "1.5.0-rc2-24008"
|
||||||
|
},
|
||||||
|
"tools": {
|
||||||
|
"dotnet-compile-fsc": {
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"imports": [
|
||||||
|
"dnxcore50",
|
||||||
|
"portable-net45+win81",
|
||||||
|
"netstandard1.3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandardapp1.5": {
|
||||||
|
"imports": [
|
||||||
|
"dnxcore50",
|
||||||
|
"netstandard1.3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,10 +8,23 @@
|
||||||
"Program.fs"
|
"Program.fs"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"TestLibrary": "1.0.0-*",
|
"TestLibrary": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-23925",
|
"version": "1.0.0-*",
|
||||||
|
"target": "project"
|
||||||
|
},
|
||||||
|
"NETStandard.Library": "1.5.0-rc2-24008",
|
||||||
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-151221"
|
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-151221"
|
||||||
},
|
},
|
||||||
|
"tools": {
|
||||||
|
"dotnet-compile-fsc": {
|
||||||
|
"version": "1.0.0-*",
|
||||||
|
"imports": [
|
||||||
|
"dnxcore50",
|
||||||
|
"portable-net45+win81",
|
||||||
|
"netstandard1.3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netstandardapp1.5": {
|
||||||
"imports": "dnxcore50"
|
"imports": "dnxcore50"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue