Merge branch 'master' into merges/release/2.1.4xx-to-master

This commit is contained in:
Livar 2018-06-06 09:19:05 -07:00 committed by GitHub
commit 62d968050a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
105 changed files with 320 additions and 430 deletions

View file

@ -29,7 +29,9 @@ tools\TestAssetsDependencies\TestAssetsDependencies.csproj
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences> <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<DisableImplicitPackageTargetFallback>true</DisableImplicitPackageTargetFallback> <DisableImplicitPackageTargetFallback>true</DisableImplicitPackageTargetFallback>
<CliTargetFramework>netcoreapp2.1</CliTargetFramework> <CliTargetFramework>netcoreapp2.2</CliTargetFramework>
<!-- We only need this until we get a stage0 with a 2.2 SDK. -->
<NETCoreAppMaximumVersion>2.2</NETCoreAppMaximumVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="build/InitRepo.props" /> <Import Project="build/InitRepo.props" />

View file

@ -2,43 +2,42 @@
The runtime configuration files store the dependencies of an application (formerly stored in the `.deps` file). They also include runtime configuration options, such as the Garbage Collector mode. Optionally they can also include data for runtime compilation (compilation settings used to compile the original application, and reference assemblies used by the application). The runtime configuration files store the dependencies of an application (formerly stored in the `.deps` file). They also include runtime configuration options, such as the Garbage Collector mode. Optionally they can also include data for runtime compilation (compilation settings used to compile the original application, and reference assemblies used by the application).
**Note:** This document doesn't provide full explanations as to why individual items are needed in this file. That is covered in the [`corehost` spec](corehost.md) and via the `Microsoft.Extensions.DependencyModel` assembly. **Note:** This document doesn't provide full explanations as to why individual items are needed in this file. That is covered in the [host spec](corehost.md) and via the `Microsoft.Extensions.DependencyModel` assembly.
## What produces the files and where are they? ## What produces the files and where are they?
There are two runtime configuration files for a particular application. Given a project named `MyApp`, the compilation process produces the following files (on Windows, other platforms are similar): There are two runtime configuration files for a particular application. Given a project named `MyApp`, the compilation process produces the following files (on Windows, other platforms are similar):
* `MyApp.dll` - The managed assembly for `MyApp`, including an ECMA-compliant entry point token. * `MyApp.dll` - The managed assembly for `MyApp`, including an ECMA-compliant entry point token.
* `MyApp.exe` - A copy of the `corehost.exe` executable. Only present when the application is a self-contained application. * `MyApp.exe` - A copy of the `apphost.exe` executable. This is present when the application is self-contained, and in newer functionality (2.1.0+) for framework-dependent applications that wish to support platform-specific (non-portable) executables.
* `MyApp.runtimeconfig.json` - An **optional** configuration file containing runtime configuration settings. This file is required for portable applications, but not for self-contained apps. * `MyApp.runtimeconfig.json` - An **optional** configuration file containing runtime configuration settings. This file is required for framework-dependent applications, but not for self-contained apps.
* `MyApp.deps.json` - A list of dependencies, as well as compilation context data and compilation dependencies. Not technically required, but required to use the servicing or package cache/shared package install features. * `MyApp.runtimeconfig.dev.json` - An **optional** configuration file containing runtime configuration settings that typically only exists in a non-published output and thus is used for development-time scenarios. This file typically specifies additional probing paths. Depending on the semantics of each setting, the setting is either combined with or overridden by the values from `MyApp.runtimeconfig.json`.
* `MyApp.deps.json` - A list of dependencies, compilation dependencies and version information used to address assembly conflicts. Not technically required, but required to use the servicing or package cache/shared package install features, and to assist during roll-forward scenarios to select the newest version of any assembly that exists more than once in the application and framework(s). If the file is not present, all assemblies in the current folder are used instead.
The `MyApp.runtimeconfig.json` is designed to be user-editable (in the case of an app consumer wanting to change various CLR runtime options for an app, much like the `MyApp.exe.config` XML file works in .NET 4.x today). However, the `MyApp.deps.json` file is designed to be processed by automated tools and should not be user-edited. Having the files as separate makes this clearer. We could use a different format for the deps file, but if we're already integrating a JSON parser into the host, it seems most appropriate to re-use that here. Also, there are diagnostic benefits to being able to read the `.deps.json` file in a simple text editor. The `MyApp.runtimeconfig.json` is designed to be user-editable (in the case of an app consumer wanting to change various CLR runtime options for an app, much like the `MyApp.exe.config` XML file works in .NET 4.x today). However, the `MyApp.deps.json` file is designed to be processed by automated tools and should not be user-edited. Having the files as separate makes this clearer. We could use a different format for the deps file, but if we're already integrating a JSON parser into the host, it seems most appropriate to re-use that here. Also, there are diagnostic benefits to being able to read the `.deps.json` file in a simple text editor.
**IMPORTANT**: Portable Applications, i.e. those published without a specific RID, have some adjustments to this spec which is covered at the end. **IMPORTANT**: Framework-dependent applications have some adjustments to this spec which are covered at the end.
## File format ## File format
The files are both JSON files stored in UTF-8 encoding. Below are sample files. Note that not all sections are required and some will be opt-in only (see below for more details). The `.runtimeconfig.json` file is completely optional, and in the `.deps.json` file, only the `runtimeTarget`, `targets` and `libraries` sections are required (and within the `targets` section, only the runtime-specific target is required). The files are both JSON files stored in UTF-8 encoding. Below are sample files. Note that not all sections are required and some will be opt-in only (see below for more details). The `.runtimeconfig.json` file is completely optional, and in the `.deps.json` file, only the `runtimeTarget`, `targets` and `libraries` sections are required (and within the `targets` section, only the runtime-specific target is required). If no `.deps.json` exists, all assemblies local to the app will be added as TPA (trusted platform assemblies).
### [appname].runtimeconfig.json ### [appname].runtimeconfig.json
```json ```json
{ {
"runtimeOptions": { "runtimeOptions": {
"configProperties": { "configProperties": {
"System.GC.Server": true, "System.GC.Server": true,
"System.GC.Concurrent": true, "System.GC.Concurrent": true,
"System.Threading.ThreadPool.MinThreads": 4, "System.Threading.ThreadPool.MinThreads": 4,
"System.Threading.ThreadPool.MaxThreads": 8 "System.Threading.ThreadPool.MaxThreads": 8
}, },
"framework": { "framework": {
"name": "Microsoft.DotNetCore", "name": "Microsoft.NETCore.App",
"version": "1.0.1" "version": "2.1.0"
}, },
"applyPatches": true,
"applyPatches": false "rollForwardOnNoCandidateFx": 1
} }
} }
``` ```
@ -46,75 +45,71 @@ The files are both JSON files stored in UTF-8 encoding. Below are sample files.
### [appname].deps.json ### [appname].deps.json
```json ```json
{ {
"runtimeTarget": ".NETStandardApp,Version=v1.5/osx.10.10-x64", "runtimeTarget": {
"compilationOptions": { "name": ".NETCoreApp,Version=v2.0",
"defines": [ "DEBUG" ] "signature": "aafc507050a6c13a0cf2d6d4c3de136e6571da6e"
}, },
"targets": { "compilationOptions": {
".NETStandardApp,Version=v1.5": { "defines": [
"MyApp/1.0": { "TRACE",
"type": "project", "DEBUG"
"dependencies": { ],
"AspNet.Mvc": "1.0.0" "languageVersion": "",
} "platform": "",
}, "warningsAsErrors": false,
"System.Foo/1.0.0": { },
"type": "package", "targets": {
}, ".NETCoreApp,Version=v2.0": {
"System.Banana/1.0.0": { "MyApp/1.0.0": {
"type": "package", "dependencies": {
"dependencies": { "System.Banana": "1.0.0"
"System.Foo": "1.0.0"
},
"compile": {
"ref/dotnet5.4/System.Banana.dll": { }
}
}
}, },
".NETStandardApp,Version=v1.5/osx.10.10-x64": { "runtime": {
"MyApp/1.0": { "MyApp.dll": {}
"type": "project",
"dependencies": {
"AspNet.Mvc": "1.0.0"
}
},
"System.Foo/1.0.0": {
"type": "package",
"runtime": {
"lib/dnxcore50/System.Foo.dll": { }
}
},
"System.Banana/1.0.0": {
"type": "package",
"dependencies": {
"System.Foo": "1.0.0"
},
"runtime": {
"lib/dnxcore50/System.Banana.dll": { }
},
"resources": {
"lib/dnxcore50/fr-FR/System.Banana.resources.dll": { "locale": "fr-FR" }
},
"native": {
"runtimes/osx.10.10-x64/native/libbananahelper.dylib": { }
}
}
} }
}, },
"libraries": { "System.Banana/1.0.0": {
"MyApp/1.0": { "dependencies": {
"type": "project" "System.Foo": "1.0.0"
}, },
"System.Foo/1.0": { "runtime": {
"type": "package", "lib/netcoreapp2.0/System.Banana.dll": {
"serviceable": true, "assemblyVersion": "1.0.0.0",
"sha512": "[base64 string]" "fileVersion": "1.0.0.0"
}, }
"System.Banana/1.0": {
"type": "package",
"sha512": "[base64 string]"
} }
},
"System.Foo/1.0.0": {
"runtime": {
"lib/netcoreapp2.0/System.Foo.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
} }
},
"libraries": {
"MyApp/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"System.Banana/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-C63ok7q+Fi6O6I/WB4ut3hFibGSraUlE461LxhhwNk5Vcdl4ijDhX1QDupDdp3Cxr7TgwB55Sd4zNtlwT7ksAA==",
"path": "system.banana/1.0.0",
"hashPath": "system.banana.1.0.0.nupkg.sha512"
},
"System.Foo/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-avYGOiBQ4U/fJfzEDF7lzPLhk/w6P9/28y0iiQh3AxlWOheuZTgXA/pzuORuAu/s5B2bXHO2BlvQKZN0PfQ2HQ==",
"path": "system.foo/1.0.0",
"hashPath": "system.foo.1.0.0.nupkg.sha512"
}
}
} }
``` ```
@ -122,71 +117,29 @@ The files are both JSON files stored in UTF-8 encoding. Below are sample files.
### `runtimeOptions` Section (`.runtimeconfig.json`) ### `runtimeOptions` Section (`.runtimeconfig.json`)
This section is copied verbatim from an identical section in the input `project.json` file (with the exception of the `target` parameter which is generated by the compilation process). The `runtimeConfig` section specifies parameters to be provided to the runtime during initialization. Known parameters include: This section is created when building a project. Settings include:
* `configProperties` - Indicates configuration properties to configure the runtime and the framework * `configProperties` - Indicates configuration properties to configure the runtime and the framework
* Examples: * Examples:
* Full list of [configuration properties](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/clr-configuration-knobs.md) for CoreCLR. * Full list of [configuration properties](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/clr-configuration-knobs.md) for CoreCLR.
* `System.GC.Server` (old: `gcServer`) - Boolean indicating if the server GC should be used (Default: `true`). * `System.GC.Server` (old: `gcServer`) - Boolean indicating if the server GC should be used (Default: `true`).
* `System.GC.Concurrent` (old: `gcConcurrent`) - Boolean indicating if background garbage collection should be used. * `System.GC.Concurrent` (old: `gcConcurrent`) - Boolean indicating if background garbage collection should be used.
* `framework` - Indicates the `name`, `version`, and other properties of the shared framework to use when activating the application. The presence of this section indicates that the application is a portable app designed to use a shared redistributable framework. * `framework` - Indicates the `name`, `version`, and other properties of the shared framework to use when activating the application including `applyPathes` and `rollForwardOnNoCandidateFx`. The presence of this section indicates that the application is a framework-dependent app.
* `applyPatches` - When `false`, the framework version is strictly obeyed by the host. When `applyPatches` is unspecified or specified as `true`, the framework from either the same or a higher version that differs only in the `SemVer` patch field will be used. * `applyPatches` - When `false`, the framework version is strictly obeyed by the host. When `applyPatches` is unspecified or `true`, the framework from either the same or a higher version that differs only by the patch field will be used.
* For example, if `version=1.0.1` and `applyPatches` is `true`, the host would load the shared framework from `1.0.{n}`, where `n >= 1`, but will not load from `1.1.0`, even if present. When `applyPatches` is `false`, the shared framework will be loaded from `1.0.1` strictly. * For example, if `version=1.0.1` and `applyPatches` is `true`, the host would load the shared framework from `1.0.{n}`, where `n >= 1`, but will not load from `1.1.0`, even if present. When `applyPatches` is `false`, the shared framework will be loaded from `1.0.1` strictly.
* **Note:** This does not apply to `SemVer`'s `prerelease` versions, but only for `production` releases. * **Note:** This does not apply to `pre-release` versions; it applies only to `production` releases.
* **Note:** This section will not be used for standalone applications that do not rely upon a shared framework. * **Note:** This section should not exist self-contained applications because they do not rely upon a shared framework.
* `rollForwardOnNoCandidateFx` - Determines roll-forward behavior of major and minor. Only applies to `production` releases. Values: 0(Off), 1 (roll forward on [minor]), 2 (Roll forward on [major] and [minor])
See [roll-forward-on-no-candidate documentation](https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/roll-forward-on-no-candidate-fx.md) for more information.
* Others _TBD_ These settings are read by host (apphost or dotnet executable) to determine how to initialize the runtime. All versions of the host **must ignore** settings in this section that they do not understand (thus allowing new settings to be added in later versions).
These settings are read by `corehost` to determine how to initialize the runtime. All versions of `corehost` **must ignore** settings in this section that they do not understand (thus allowing new settings to be added in later versions).
### `compilationOptions` Section (`.deps.json`) ### `compilationOptions` Section (`.deps.json`)
This section is copied by storing the merged `compilationOptions` from the input `project.json`. The `project.json` can define three sets of compilation options: Global, Per-Configuration, and Per-Framework. However, the `[appname].runtimeconfig.json` is specific to a configuration and framework so there is only one merged section here. This section is created during build from the project's settings. The exact settings found here are specific to the compiler that produced the original application binary. Some example settings include: `defines`, `languageVersion` (e.g. the version of C# or VB), `allowUnsafe` (a C# option), etc.
The exact settings found here are specific to the compiler that produced the original application binary. Some example settings include: `defines`, `languageVersion` (C#/VB), `allowUnsafe` (C#), etc.
As an example, here is a possible `project.json` file:
```json
{
"compilationOptions": {
"allowUnsafe": true
},
"frameworks": {
"net451": {
"compilationOptions": {
"defines": [ "DESKTOP_CLR" ]
}
},
"dnxcore50": {
"compilationOptions": {
"defines": [ "CORE_CLR" ]
}
}
},
"configurations": {
"Debug": {
"compilationOptions": {
"defines": [ "DEBUG_MODE" ]
}
}
}
}
```
When this project is built for `dnxcore50` in the `Debug` configuration, the outputted `MyApp.deps.json` file will have the following `compilationOptions` section:
```json
{
"compilationOptions": {
"allowUnsafe": true,
"defines": [ "CORE_CLR", "DEBUG_MODE" ]
}
}
```
### `runtimeTarget` Section (`.deps.json`) ### `runtimeTarget` Section (`.deps.json`)
This property contains the name of the target from `targets` that should be used by the runtime. This is present to simplify `corehost` so that it does not have to parse or understand target names and the meaning thereof. This property contains the name of the target from `targets` that should be used by the runtime. This is present to simplify the host so that it does not have to parse or understand target names and the meaning thereof.
### `targets` Section (`.deps.json`) ### `targets` Section (`.deps.json`)
@ -194,14 +147,10 @@ This section contains subsetted data from the input `project.lock.json`.
Each property under `targets` describes a "target", which is a collection of libraries required by the application when run or compiled in a certain framework and platform context. A target **must** specify a Framework name, and **may** specify a Runtime Identifier. Targets without Runtime Identifiers represent the dependencies and assets used for compiling the application for a particular framework. Targets with Runtime Identifiers represent the dependencies and assets used for running the application under a particular framework and on the platform defined by the Runtime Identifier. In the example above, the `.NETStandardApp,Version=v1.5` target lists the dependencies and assets used to compile the application for `dnxcore50`, and the `.NETStandardApp,Version=v1.5/osx.10.10-x64` target lists the dependencies and assets used to run the application on `dnxcore50` on a 64-bit Mac OS X 10.10 machine. Each property under `targets` describes a "target", which is a collection of libraries required by the application when run or compiled in a certain framework and platform context. A target **must** specify a Framework name, and **may** specify a Runtime Identifier. Targets without Runtime Identifiers represent the dependencies and assets used for compiling the application for a particular framework. Targets with Runtime Identifiers represent the dependencies and assets used for running the application under a particular framework and on the platform defined by the Runtime Identifier. In the example above, the `.NETStandardApp,Version=v1.5` target lists the dependencies and assets used to compile the application for `dnxcore50`, and the `.NETStandardApp,Version=v1.5/osx.10.10-x64` target lists the dependencies and assets used to run the application on `dnxcore50` on a 64-bit Mac OS X 10.10 machine.
There will always be two targets in the `[appname].runtimeconfig.json` file: A compilation target, and a runtime target. The compilation target will be named with the framework name used for the compilation (`.NETStandardApp,Version=v1.5` in the example above). The runtime target will be named with the framework name and runtime identifier used to execute the application (`.NETStandardApp,Version=v1.5/osx.10.10-x64` in the example above). However, the runtime target will also be identified by name in the `runtimeOptions` section, so that `corehost` need not parse and understand target names. There will always be two targets in the `[appname].runtimeconfig.json` file: A compilation target, and a runtime target. The compilation target will be named with the framework name used for the compilation (`.NETStandardApp,Version=v1.5` in the example above). The runtime target will be named with the framework name and runtime identifier used to execute the application (`.NETStandardApp,Version=v1.5/osx.10.10-x64` in the example above). However, the runtime target will also be identified by name in the `runtimeOptions` section, so that the host does not need to parse and understand target names.
The content of each target property in the JSON is a JSON object. Each property of that JSON object represents a single dependency required by the application when compiled for/run on that target. The name of the property contains the ID and Version of the dependency in the form `[Id]/[Version]`. The content of the property is another JSON object containing metadata about the dependency. The content of each target property in the JSON is a JSON object. Each property of that JSON object represents a single dependency required by the application when compiled for/run on that target. The name of the property contains the ID and Version of the dependency in the form `[Id]/[Version]`. The content of the property is another JSON object containing metadata about the dependency.
The `type` property of a dependency object defines what kind of entity satisfied the dependency. Possible values include `project` and `package` (further comments on dependency types below).
**Open Question:** `type` is also present in the `libraries` section. We don't really need it in both. It's in both now because the lock file does that and we want the formats to be similar. Should we remove it?
The `dependencies` property of a dependency object defines the ID and Version of direct dependencies of this node. It is a JSON object where the property names are the ID of the dependency and the content of each property is the Version of the dependency. The `dependencies` property of a dependency object defines the ID and Version of direct dependencies of this node. It is a JSON object where the property names are the ID of the dependency and the content of each property is the Version of the dependency.
The `runtime` property of a dependency object lists the relative paths to Managed Assemblies required to be available at runtime in order to satisfy this dependency. The paths are relative to the location of the Dependency (see below for further details on locating a dependency). The `runtime` property of a dependency object lists the relative paths to Managed Assemblies required to be available at runtime in order to satisfy this dependency. The paths are relative to the location of the Dependency (see below for further details on locating a dependency).
@ -212,7 +161,7 @@ The `native` property of a dependency object lists the relative paths to Native
In compilation targets, the `runtime`, `resources` and `native` properties of a dependency are omitted, because they are not relevant to compilation. Similarly, in runtime targets, the `compile` property is omitted, because it is not relevant to runtime. In compilation targets, the `runtime`, `resources` and `native` properties of a dependency are omitted, because they are not relevant to compilation. Similarly, in runtime targets, the `compile` property is omitted, because it is not relevant to runtime.
Only dependencies with a `type` value of `package` should be considered by `corehost`. There may be other items, used for other purposes (for example, Projects, Reference Assemblies, etc. Only dependencies with a `type` value of `package` should be considered by the host. There may be other items, used for other purposes (for example, Projects, Reference Assemblies, etc.
### `libraries` Section (`.deps.json`) ### `libraries` Section (`.deps.json`)
@ -222,78 +171,27 @@ This section contains a union of all the dependencies found in the various targe
The file is read by two different components: The file is read by two different components:
* `corehost` uses it to determine what to place on the TPA and Native Library Search Path lists, as well as what runtime settings to apply (GC type, etc.). See [the `corehost` spec](corehost.md). * The host uses it to determine what to place on the TPA and Native Library Search Path lists, as well as what runtime settings to apply (GC type, etc.). See [the host spec](corehost.md).
* `Microsoft.Extensions.DependencyModel` uses it to allow a running managed application to query various data about it's dependencies. For example: * `Microsoft.Extensions.DependencyModel` uses it to allow a running managed application to query various data about it's dependencies. For example:
* To find all dependencies that depend on a particular package (used by ASP.NET MVC and other plugin-based systems to identify assemblies that should be searched for possible plugin implementations) * To find all dependencies that depend on a particular package (used by ASP.NET MVC and other plugin-based systems to identify assemblies that should be searched for possible plugin implementations)
* To determine the reference assemblies used by the application when it was compiled in order to allow runtime compilation to use the same reference assemblies (used by ASP.NET Razor to compile views) * To determine the reference assemblies used by the application when it was compiled in order to allow runtime compilation to use the same reference assemblies (used by ASP.NET Razor to compile views)
* To determine the compilation settings used by the application in order to allow runtime compilation to use the same settings (also used by ASP.NET Razor views). * To determine the compilation settings used by the application in order to allow runtime compilation to use the same settings (also used by ASP.NET Razor views).
## Opt-In Compilation Data ## Opt-In Compilation Data
Some of the sections in the `.deps.json` file contain data used for runtime compilation. This data is not provided in the file by default. Instead, a project.json setting `preserveCompilationContext` must be set to true in order to ensure this data is added. Without this setting, the `compilationOptions` will not be present in the file, and the `targets` section will contain only the runtime target. For example, if the `preserveCompilationContext` setting was not present in the `project.json` that generated the above example, the `.deps.json` file would only contain the following content: Some of the sections in the `.deps.json` file contain data used for runtime compilation. This data is not provided in the file by default. Instead, a project.json setting `preserveCompilationContext` must be set to true in order to ensure this data is added. Without this setting, the `compilationOptions` will not be present in the file, and the `targets` section will contain only the runtime target.
```json ## Framework-dependent Deployment Model
{
"runtimeTarget": {
"name": ".NETStandardApp,Version=v1.5/osx.10.10-x64",
"portable": false
},
"targets": {
".NETStandardApp,Version=v1.5/osx.10.10-x64": {
"MyApp/1.0": {
"dependencies": {
"AspNet.Mvc": "1.0.0"
}
},
"System.Foo/1.0.0": {
"runtime": {
"lib/dnxcore50/System.Foo.dll": { }
}
},
"System.Banana/1.0.0": {
"dependencies": {
"System.Foo": "1.0.0"
},
"runtime": {
"lib/dnxcore50/System.Banana.dll": { }
},
"resources": {
"lib/dnxcore50/fr-FR/System.Banana.resources.dll": { "locale": "fr-FR" }
},
"native": {
"runtimes/osx.10.10-x64/native/libbananahelper.dylib": { }
}
}
}
},
"libraries": {
"MyApp/1.0": {
"type": "project"
},
"System.Foo/1.0": {
"type": "package",
"serviceable": true,
"sha512": "[base64 string]"
},
"System.Banana/1.0": {
"type": "package",
"sha512": "[base64 string]"
}
}
}
```
## Portable Deployment Model An application can be deployed in a "framework-dependent" deployment model. In this case, the RID-specific assets of packages are published within a folder structure that preserves the RID metadata. However the host does not use this folder structure, rather it reads data from the `.deps.json` file. Also, during deployment, the `.exe` file (`apphost.exe` renamed) is not deployed by default.
An application can be deployed in a "portable" deployment model. In this case, the RID-specific assets of packages are published within a folder structure that preserves the RID metadata. However, `corehost` does not use this folder structure, rather it reads data from the `.deps.json` file. Also, during deployment, the `.exe` file (`corehost` renamed) is not deployed. In the framework-dependent deployment model, the `*.runtimeConfig.json` file will contain the `runtimeOptions.framework` section:
In the portable deployment model, the `*.runtimeConfig.json` file will contain the `runtimeOptions.framework` section:
```json ```json
{ {
"runtimeOptions": { "runtimeOptions": {
"framework": { "framework": {
"name": "NETCore.App", "name": "Microsoft.NETCore.App",
"version": "1.0.1" "version": "1.0.1"
} }
} }
@ -336,11 +234,11 @@ The shared framework's deps file will also contain a `runtimes` section defining
} }
``` ```
The host will have a RID embedded in it during compilation (for example, `win10-x64` for Windows 64-bit). It will look up the corresponding entry in the `runtimes` section to identify what the fallback list is for `win10-x64`. The fallbacks are identified from most-specific to least-specific. In the case of `win10-x64` and the example above, the fallback list is: `"win10-x64", "win10", "win81-x64", "win81", "win8-x64", "win8", "win7-x64", "win7", "win-x64", "win", "any", "base"` (note that an exact match on the RID itself is the first preference, followed by the first item in the fallback list, then the next item, and so on). The host will detect the RID at runtime (for example, `win10-x64` for Windows 64-bit). It will look up the corresponding entry in the `runtimes` section to identify what the fallback list is for `win10-x64`. The fallbacks are identified from most-specific to least-specific. In the case of `win10-x64` and the example above, the fallback list is: `"win10-x64", "win10", "win81-x64", "win81", "win8-x64", "win8", "win7-x64", "win7", "win-x64", "win", "any", "base"` (note that an exact match on the RID itself is the first preference, followed by the first item in the fallback list, then the next item, and so on).
In the app-local deps file for a `portable` application, the package entries may have an additional `runtimeTargets` section detailing RID-specific assets. The `corehost` application should use this data, along with the current RID and the RID fallback data defined in the `runtimes` section of the shared framework deps file to select one **and only one** RID value out of each package individually. The most specific RID present within the package should always be selected. In the app-local deps file for a `framework-dependent` application, the package entries may have an additional `runtimeTargets` section detailing RID-specific assets. The host should use this data, along with the current RID and the RID fallback data defined in the `runtimes` section of the shared framework deps file to select one **and only one** RID value out of each package individually. The most specific RID present within the package should always be selected.
Consider `corehost` built for `ubuntu.14.04-x64` and the following snippet from an app-local deps file (some sections removed for brevity). Consider an application built for `ubuntu.14.04-x64` and the following snippet from an app-local deps file (some sections removed for brevity).
```json ```json
{ {
@ -389,3 +287,52 @@ When setting up the TPA and native library lists, it will do the following for t
Note one important aspect about asset resolution: The resolution scope is **per-package**, **not per-application**, **nor per-asset**. For each individual package, the most appropriate RID is selected, and **all** assets taken from that package must match the selected RID exactly. For example, if a package provides both a `linux-x64` and a `unix` RID (in the `ubuntu.14.04-x64` example above), **only** the `linux-x64` asset would be selected for that package. However, if a different package provides only a `unix` RID, then the asset from the `unix` RID would be selected. Note one important aspect about asset resolution: The resolution scope is **per-package**, **not per-application**, **nor per-asset**. For each individual package, the most appropriate RID is selected, and **all** assets taken from that package must match the selected RID exactly. For example, if a package provides both a `linux-x64` and a `unix` RID (in the `ubuntu.14.04-x64` example above), **only** the `linux-x64` asset would be selected for that package. However, if a different package provides only a `unix` RID, then the asset from the `unix` RID would be selected.
The path to a runtime-specific asset is resolved in the same way as a normal asset (first check Servicing, then Package Cache, App-Local, Global Packages Location, etc.) with **one exception**. When searching app-local, rather than just looking for the simple file name in the app-local directory, a runtime-specific asset is expected to be located in a subdirectory matching the relative path information for that asset in the lock file. So the `native` `sni.dll` asset for `win7-x64` in the `System.Data.SqlClient` example above would be located at `APPROOT/runtimes/win7-x64/native/sni.dll`, rather than the normal app-local path of `APPROOT/sni.dll`. The path to a runtime-specific asset is resolved in the same way as a normal asset (first check Servicing, then Package Cache, App-Local, Global Packages Location, etc.) with **one exception**. When searching app-local, rather than just looking for the simple file name in the app-local directory, a runtime-specific asset is expected to be located in a subdirectory matching the relative path information for that asset in the lock file. So the `native` `sni.dll` asset for `win7-x64` in the `System.Data.SqlClient` example above would be located at `APPROOT/runtimes/win7-x64/native/sni.dll`, rather than the normal app-local path of `APPROOT/sni.dll`.
## Opt-In [appname].runtimeconfig.json Explicit Overrides for Framework Settings
In order to address potential issues with compatibility, an application can override a framework's runtimeconfig.json settings. This should only be done with the understanding that any settings specified here have unintended consequences and may prevent future upgrade \ roll-forward compatibility. The settings include `version`, `rollForwardOnNoCandidateFx` and `applyPatches`.
As an example, assume the following framework layering:
- Application
- Microsoft.AspNetCore.All
- Microsoft.AspNetCore.App
- Microsoft.NetCore.App
Except for Microsoft.NetCore.App (since it does not have a lower-level framework), each layer has a runtimeconfig.json setting specifying a single lower-layer framework's `name`, `version` and optional `rollForwardOnNoCandidateFx` and `applyPatches`.
The normal hierarchy processing for most knobs, such as `rollForwardOnNoCandidateFx`:
- a) Default value determined by the framework (e.g. roll-forward on [Minor])
- b) Environment variable override (e.g. `DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX`)
- c) Each layer's `runtimeOptions` override setting in its runtimeconfig.json, starting with app (e.g. `rollForwardOnNoCandidateFx`). Lower layers can override this.
- d) The app's `additionalFrameworks` override section in `[appname].runtimeconfig.json` which specifies knobs per-framework.
- e) A `--` command line value such as `--roll-forward-on-no-candidate-fx`
In a hypothetical example, `Microsoft.AspNetCore.App` turns on the ability via mechanism `c` above to roll-forward `Microsoft.NetCore.App` on [major] releases by specifying `rollForwardOnNoCandidateFx = 2` in its runtimeconfig.json. For example:
```json
{
"runtimeOptions": {
"framework": {
"name": "Microsoft.NetCore.App",
"version": "2.2.0"
},
"rollForwardOnNoCandidateFx": "2"
}
}
```
However, if that behavior is not wanted by the app, the app has the option of overriding. This cannot be done by the same mechanism `c` because the app's runtimeconfig settings would be overridden by the sample above since the sample is in a lower layer. Thus to override the setting, mechanism `d` is used. An example of the `additionalFrameworks` section for mechanism `d`:
```json
{
"runtimeOptions": {
"framework": {
"name": "Microsoft.AspNetCore.All",
"version": "1.0.1"
},
"additionalFrameworks": [
{
"name": "Microsoft.AspNetCore.App",
"rollForwardOnNoCandidateFx": "1",
}
]
}
}
```

View file

@ -9,7 +9,7 @@ Looking for V1 of the .NET Core tooling?
If you are looking for the v2.0 release of the .NET Core tools (CLI, MSBuild and the new csproj), head over to https://dot.net/core and download! If you are looking for the v2.0 release of the .NET Core tools (CLI, MSBuild and the new csproj), head over to https://dot.net/core and download!
> **Note:** the release/2.1.4xx branch of the CLI repo is based on an upcoming update of the SDK and is considered pre-release. For production-level usage, please use the > **Note:** the master branch of the CLI repo is based on an upcoming update of the SDK and is considered pre-release. For production-level usage, please use the
> released version of the tools available at https://dot.net/core > released version of the tools available at https://dot.net/core
Found an issue? Found an issue?
@ -65,7 +65,7 @@ To download the .NET Core runtime **without** the SDK, visit https://github.com/
> want to install the latest released versions, check out the [preceding section](#looking-for-v1-of-the-net-core-tooling). > want to install the latest released versions, check out the [preceding section](#looking-for-v1-of-the-net-core-tooling).
> In order to be able to restore these pre-release packages, you may need to add a NuGet feed pointing to https://dotnet.myget.org/F/dotnet-core/api/v3/index.json. Other feeds may also be necessary depending on what kind of project you are working with. > In order to be able to restore these pre-release packages, you may need to add a NuGet feed pointing to https://dotnet.myget.org/F/dotnet-core/api/v3/index.json. Other feeds may also be necessary depending on what kind of project you are working with.
| Platform | Latest Daily Build<br>*release/2.1.4xx*<br>[![][version-badge]][version] | | Platform | Latest Daily Build<br>*master*<br>[![][version-badge]][version] |
| -------- | :-------------------------------------: | | -------- | :-------------------------------------: |
| **Windows x64** | [Installer][win-x64-installer] - [Checksum][win-x64-installer-checksum]<br>[zip][win-x64-zip] - [Checksum][win-x64-zip-checksum] | | **Windows x64** | [Installer][win-x64-installer] - [Checksum][win-x64-installer-checksum]<br>[zip][win-x64-zip] - [Checksum][win-x64-zip-checksum] |
| **Windows x86** | [Installer][win-x86-installer] - [Checksum][win-x86-installer-checksum]<br>[zip][win-x86-zip] - [Checksum][win-x86-zip-checksum] | | **Windows x86** | [Installer][win-x86-installer] - [Checksum][win-x86-installer-checksum]<br>[zip][win-x86-zip] - [Checksum][win-x86-zip-checksum] |
@ -76,7 +76,7 @@ To download the .NET Core runtime **without** the SDK, visit https://github.com/
| **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] | | **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] |
| **Linux-musl** | [tar.gz][linux-musl-targz] - [Checksum][linux-musl-targz-checksum] | | **Linux-musl** | [tar.gz][linux-musl-targz] - [Checksum][linux-musl-targz-checksum] |
| Latest Coherent Build<sup>2</sup><br>*release/2.1.4xx* | | Latest Coherent Build<sup>2</sup><br>*master* |
|:------:| |:------:|
| [![][coherent-version-badge]][coherent-version] | | [![][coherent-version-badge]][coherent-version] |
@ -84,44 +84,44 @@ Reference notes:
> **1**: *Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have separate component packages that depend on each other. If you're installing these directly from the .deb files (via dpkg or similar), then you'll need to install the [corresponding Host, Host FX Resolver, and Shared Framework packages](https://github.com/dotnet/core-setup#daily-builds) before installing the Sdk package.* > **1**: *Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have separate component packages that depend on each other. If you're installing these directly from the .deb files (via dpkg or similar), then you'll need to install the [corresponding Host, Host FX Resolver, and Shared Framework packages](https://github.com/dotnet/core-setup#daily-builds) before installing the Sdk package.*
> <br><br>**2**: *A 'coherent' build is defined as a build where the Runtime version matches between the CLI and Asp.NET.* > <br><br>**2**: *A 'coherent' build is defined as a build where the Runtime version matches between the CLI and Asp.NET.*
[version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/latest.version [version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/latest.version
[coherent-version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/latest.coherent.version [coherent-version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/latest.coherent.version
[comment]: # (The latest versions are always the same across all platforms. Just need one to show, so picking win-x64's svg.) [comment]: # (The latest versions are always the same across all platforms. Just need one to show, so picking win-x64's svg.)
[version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/win_x64_Release_version_badge.svg [version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x64_Release_version_badge.svg
[coherent-version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/win_x64_Release_coherent_badge.svg [coherent-version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x64_Release_coherent_badge.svg
[win-x64-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x64.exe [win-x64-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe
[win-x64-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x64.exe.sha [win-x64-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe.sha
[win-x64-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x64.zip [win-x64-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.zip
[win-x64-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x64.zip.sha [win-x64-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.zip.sha
[win-x86-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x86.exe [win-x86-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.exe
[win-x86-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x86.exe.sha [win-x86-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.exe.sha
[win-x86-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x86.zip [win-x86-zip]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.zip
[win-x86-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x86.zip.sha [win-x86-zip-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.zip.sha
[osx-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-osx-x64.pkg [osx-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.pkg
[osx-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-osx-x64.pkg.sha [osx-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.pkg.sha
[osx-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-osx-x64.tar.gz [osx-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.tar.gz
[osx-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-osx-x64.tar.gz.sha [osx-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-osx-x64.tar.gz.sha
[linux-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-linux-x64.tar.gz [linux-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-x64.tar.gz
[linux-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-linux-x64.tar.gz.sha [linux-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-x64.tar.gz.sha
[linux-arm-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-linux-arm.tar.gz [linux-arm-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm.tar.gz
[linux-arm-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-linux-arm.tar.gz.sha [linux-arm-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm.tar.gz.sha
[linux-arm64-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-linux-arm64.tar.gz [linux-arm64-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm64.tar.gz
[linux-arm64-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha [linux-arm64-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm64.tar.gz.sha
[linux-DEB-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-x64.deb [linux-DEB-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.deb
[linux-DEB-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-x64.deb.sha [linux-DEB-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.deb.sha
[linux-RPM-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-x64.rpm [linux-RPM-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.rpm
[linux-RPM-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-x64.rpm.sha [linux-RPM-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-x64.rpm.sha
[rhel-6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz [rhel-6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-rhel.6-x64.tar.gz
[rhel-6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha [rhel-6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
[linux-musl-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz [linux-musl-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz
[linux-musl-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha [linux-musl-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha

View file

@ -2,9 +2,9 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net451</TargetFrameworks> <TargetFrameworks>netcoreapp2.2;net451</TargetFrameworks>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AssetTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">$(AssetTargetFallback);portable-net45+win8;dnxcore50</AssetTargetFallback> <AssetTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">$(AssetTargetFallback);portable-net45+win8;dnxcore50</AssetTargetFallback>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.2</TargetFrameworks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks> <TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>dotnet-tool-with-output-name</AssemblyName> <AssemblyName>dotnet-tool-with-output-name</AssemblyName>
<PackageId>ToolWithOutputName</PackageId> <PackageId>ToolWithOutputName</PackageId>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<VersionPrefix>1.0.0-rc</VersionPrefix> <VersionPrefix>1.0.0-rc</VersionPrefix>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -6,7 +6,7 @@
<PropertyGroup> <PropertyGroup>
<VersionPrefix>1.0.0-rc</VersionPrefix> <VersionPrefix>1.0.0-rc</VersionPrefix>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<VersionSuffix></VersionSuffix> <VersionSuffix></VersionSuffix>
<DisableImplicitFrameworkReferences>false</DisableImplicitFrameworkReferences> <DisableImplicitFrameworkReferences>false</DisableImplicitFrameworkReferences>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>dotnet-fallbackfoldertool</AssemblyName> <AssemblyName>dotnet-fallbackfoldertool</AssemblyName>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<VersionSuffix></VersionSuffix> <VersionSuffix></VersionSuffix>

View file

@ -5,7 +5,7 @@
<Version>1.0.0</Version> <Version>1.0.0</Version>
<!--Workaround for https://github.com/NuGet/Home/issues/4583--> <!--Workaround for https://github.com/NuGet/Home/issues/4583-->
<VersionSuffix></VersionSuffix> <VersionSuffix></VersionSuffix>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>dotnet-hello</AssemblyName> <AssemblyName>dotnet-hello</AssemblyName>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>

View file

@ -5,7 +5,7 @@
<Version>2.0.0</Version> <Version>2.0.0</Version>
<!--Workaround for https://github.com/NuGet/Home/issues/4583--> <!--Workaround for https://github.com/NuGet/Home/issues/4583-->
<VersionSuffix></VersionSuffix> <VersionSuffix></VersionSuffix>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>dotnet-hello</AssemblyName> <AssemblyName>dotnet-hello</AssemblyName>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<VersionSuffix></VersionSuffix> <VersionSuffix></VersionSuffix>
</PropertyGroup> </PropertyGroup>

View file

@ -3,6 +3,6 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<VersionPrefix>1.0.0</VersionPrefix> <VersionPrefix>1.0.0</VersionPrefix>
<TargetFrameworks>netcoreapp2.1</TargetFrameworks> <TargetFrameworks>netcoreapp2.2</TargetFrameworks>
<AssemblyName>AppWithDirectDep</AssemblyName> <AssemblyName>AppWithDirectDep</AssemblyName>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFrameworks>net451;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net451;netcoreapp2.2</TargetFrameworks>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>
@ -11,7 +11,7 @@
<PackageReference Include="dotnet-desktop-and-portable" Version="1.0.0-*" /> <PackageReference Include="dotnet-desktop-and-portable" Version="1.0.0-*" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' "> <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">
<PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" /> <PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
</ItemGroup> </ItemGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<VersionPrefix>1.0.0</VersionPrefix> <VersionPrefix>1.0.0</VersionPrefix>
<TargetFrameworks>netcoreapp2.1</TargetFrameworks> <TargetFrameworks>netcoreapp2.2</TargetFrameworks>
<AssemblyName>DependencyContextFromTool</AssemblyName> <AssemblyName>DependencyContextFromTool</AssemblyName>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- Issue: https://github.com/dotnet/sdk/issues/1150 --> <!-- Issue: https://github.com/dotnet/sdk/issues/1150 -->
<DisableImplicitAssetTargetFallback>true</DisableImplicitAssetTargetFallback> <DisableImplicitAssetTargetFallback>true</DisableImplicitAssetTargetFallback>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFrameworks>net451;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net451;netcoreapp2.2</TargetFrameworks>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,14 +3,14 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFrameworks>net451;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net451;netcoreapp2.2</TargetFrameworks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="dotnet-desktop-and-portable" Version="1.0.0-*" /> <PackageReference Include="dotnet-desktop-and-portable" Version="1.0.0-*" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' "> <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">
<PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" /> <PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
</ItemGroup> </ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources> <RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup> </PropertyGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net46;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net46;netcoreapp2.2</TargetFrameworks>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net46'"> <PropertyGroup Condition="'$(TargetFramework)' == 'net46'">

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" /> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net46;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net46;netcoreapp2.2</TargetFrameworks>
<RuntimeIdentifiers>win7-x86</RuntimeIdentifiers> <RuntimeIdentifiers>win7-x86</RuntimeIdentifiers>
<RuntimeIdentifier Condition=" '$(TargetFramework)' == 'net46' ">win7-x86</RuntimeIdentifier> <RuntimeIdentifier Condition=" '$(TargetFramework)' == 'net46' ">win7-x86</RuntimeIdentifier>
</PropertyGroup> </PropertyGroup>
@ -11,7 +11,7 @@
<DefineConstants>DESKTOP;$(DefineConstants)</DefineConstants> <DefineConstants>DESKTOP;$(DefineConstants)</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.1'"> <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.2'">
<PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" /> <PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
</ItemGroup> </ItemGroup>

View file

@ -1,6 +1,6 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Channel>release/2.1.4xx</Channel> <Channel>master</Channel>
<BranchName>release/2.1.4xx</BranchName> <BranchName>master</BranchName>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -5,7 +5,7 @@
<BundledTemplate Include="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="$(MicrosoftDotNetTestProjectTemplates20PackageVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="$(MicrosoftDotNetTestProjectTemplates20PackageVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.ItemTemplates" Version="$(AspNetCoreVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Web.ItemTemplates" Version="$(AspNetCoreVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.ProjectTemplates.2.1" Version="$(AspNetCoreVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Web.ProjectTemplates.2.2" Version="$(AspNetCoreVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Version="$(AspNetCoreVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Version="$(AspNetCoreVersion)" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -1,8 +1,11 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<RuntimeNETCoreAppPackageName>runtime.$(SharedFrameworkRid).microsoft.netcore.app</RuntimeNETCoreAppPackageName> <RuntimeNETCoreAppPackageName>runtime.$(SharedFrameworkRid).microsoft.netcore.app</RuntimeNETCoreAppPackageName>
<CrossgenPath>$(NuGetPackagesDir)/$(RuntimeNETCoreAppPackageName)/$(MicrosoftNETCoreAppPackageVersion)/tools/crossgen$(ExeExtension)</CrossgenPath> <_crossDir Condition="'$(Architecture)' == 'arm64'">/x64_arm64</_crossDir>
<LibCLRJitPath>$(NuGetPackagesDir)/$(RuntimeNETCoreAppPackageName)/$(MicrosoftNETCoreAppPackageVersion)/runtimes/$(SharedFrameworkRid)/native/$(DynamicLibPrefix)clrjit$(DynamicLibExtension)</LibCLRJitPath> <CrossgenPath>$(NuGetPackagesDir)/$(RuntimeNETCoreAppPackageName)/$(MicrosoftNETCoreAppPackageVersion)/tools$(_crossDir)/crossgen$(ExeExtension)</CrossgenPath>
<LibCLRJitRid Condition="'$(Architecture)' != 'arm64'">$(SharedFrameworkRid)</LibCLRJitRid>
<LibCLRJitRid Condition="'$(Architecture)' == 'arm64'">x64_arm64</LibCLRJitRid>
<LibCLRJitPath>$(NuGetPackagesDir)/$(RuntimeNETCoreAppPackageName)/$(MicrosoftNETCoreAppPackageVersion)/runtimes/$(LibCLRJitRid)/native/$(DynamicLibPrefix)clrjit$(DynamicLibExtension)</LibCLRJitPath>
<SharedFrameworkNameVersionPath>$(OutputDirectory)/shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppPackageVersion)</SharedFrameworkNameVersionPath> <SharedFrameworkNameVersionPath>$(OutputDirectory)/shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppPackageVersion)</SharedFrameworkNameVersionPath>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<MicrosoftAspNetCoreAllPackageVersion>2.1.0</MicrosoftAspNetCoreAllPackageVersion> <MicrosoftAspNetCoreAllPackageVersion>2.2.0-preview1-34355</MicrosoftAspNetCoreAllPackageVersion>
<MicrosoftAspNetCoreAppPackageVersion>$(MicrosoftAspNetCoreAllPackageVersion)</MicrosoftAspNetCoreAppPackageVersion> <MicrosoftAspNetCoreAppPackageVersion>$(MicrosoftAspNetCoreAllPackageVersion)</MicrosoftAspNetCoreAppPackageVersion>
<MicrosoftNETCoreAppPackageVersion>2.1.0</MicrosoftNETCoreAppPackageVersion> <MicrosoftNETCoreAppPackageVersion>2.2.0-preview1-26529-01</MicrosoftNETCoreAppPackageVersion>
<MicrosoftNETCoreDotNetHostResolverPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</MicrosoftNETCoreDotNetHostResolverPackageVersion> <MicrosoftNETCoreDotNetHostResolverPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</MicrosoftNETCoreDotNetHostResolverPackageVersion>
<MicrosoftBuildPackageVersion>15.8.0-preview-000078</MicrosoftBuildPackageVersion> <MicrosoftBuildPackageVersion>15.8.0-preview-000078</MicrosoftBuildPackageVersion>
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion> <MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion>
@ -16,7 +16,7 @@
<MicrosoftNETCoreCompilersPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNETCoreCompilersPackageVersion> <MicrosoftNETCoreCompilersPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNETCoreCompilersPackageVersion>
<MicrosoftCodeAnalysisBuildTasksPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisBuildTasksPackageVersion> <MicrosoftCodeAnalysisBuildTasksPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisBuildTasksPackageVersion>
<MicrosoftNetCompilersNetcorePackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNetCompilersNetcorePackageVersion> <MicrosoftNetCompilersNetcorePackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNetCompilersNetcorePackageVersion>
<MicrosoftNETSdkPackageVersion>1.0.0-preview-62924-09</MicrosoftNETSdkPackageVersion> <MicrosoftNETSdkPackageVersion>1.0.0-preview1-62924-06</MicrosoftNETSdkPackageVersion>
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion> <MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
<MicrosoftNETSdkRazorPackageVersion>$(MicrosoftAspNetCoreAppPackageVersion)</MicrosoftNETSdkRazorPackageVersion> <MicrosoftNETSdkRazorPackageVersion>$(MicrosoftAspNetCoreAppPackageVersion)</MicrosoftNETSdkRazorPackageVersion>
<MicrosoftNETSdkWebPackageVersion>2.1.300</MicrosoftNETSdkWebPackageVersion> <MicrosoftNETSdkWebPackageVersion>2.1.300</MicrosoftNETSdkWebPackageVersion>
@ -30,8 +30,8 @@
<MicrosoftTemplateEngineCliLocalizationPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineCliLocalizationPackageVersion> <MicrosoftTemplateEngineCliLocalizationPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineCliLocalizationPackageVersion>
<MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion> <MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>
<MicrosoftTemplateEngineUtilsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineUtilsPackageVersion> <MicrosoftTemplateEngineUtilsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineUtilsPackageVersion>
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0</MicrosoftDotNetPlatformAbstractionsPackageVersion> <MicrosoftDotNetPlatformAbstractionsPackageVersion>2.2.0-preview1-26508-01</MicrosoftDotNetPlatformAbstractionsPackageVersion>
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0</MicrosoftExtensionsDependencyModelPackageVersion> <MicrosoftExtensionsDependencyModelPackageVersion>2.2.0-preview1-26508-01</MicrosoftExtensionsDependencyModelPackageVersion>
<MicrosoftDotNetCliCommandLinePackageVersion>0.1.1</MicrosoftDotNetCliCommandLinePackageVersion> <MicrosoftDotNetCliCommandLinePackageVersion>0.1.1</MicrosoftDotNetCliCommandLinePackageVersion>
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.3.1</MicrosoftDotNetProjectJsonMigrationPackageVersion> <MicrosoftDotNetProjectJsonMigrationPackageVersion>1.3.1</MicrosoftDotNetProjectJsonMigrationPackageVersion>
<MicrosoftDotNetToolsMigrateCommandPackageVersion>$(MicrosoftDotNetProjectJsonMigrationPackageVersion)</MicrosoftDotNetToolsMigrateCommandPackageVersion> <MicrosoftDotNetToolsMigrateCommandPackageVersion>$(MicrosoftDotNetProjectJsonMigrationPackageVersion)</MicrosoftDotNetToolsMigrateCommandPackageVersion>

View file

@ -20,6 +20,8 @@
<![CDATA[ <![CDATA[
<add key="BlobFeed" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" /> <add key="BlobFeed" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
<add key="aspnetcore-release" value="https://dotnet.myget.org/F/aspnetcore-release/api/v3/index.json" /> <add key="aspnetcore-release" value="https://dotnet.myget.org/F/aspnetcore-release/api/v3/index.json" />
<add key="aspnetcore-dev" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="roslyn" value="https://dotnet.myget.org/f/roslyn/api/v3/index.json" /> <add key="roslyn" value="https://dotnet.myget.org/f/roslyn/api/v3/index.json" />
<add key="nuget-build" value="https://dotnet.myget.org/F/nuget-build/api/v3/index.json" /> <add key="nuget-build" value="https://dotnet.myget.org/F/nuget-build/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" />

View file

@ -17,7 +17,7 @@
<RoslynDirectory>$(SdkOutputDirectory)/Roslyn</RoslynDirectory> <RoslynDirectory>$(SdkOutputDirectory)/Roslyn</RoslynDirectory>
<FSharpDirectory>$(SdkOutputDirectory)/FSharp</FSharpDirectory> <FSharpDirectory>$(SdkOutputDirectory)/FSharp</FSharpDirectory>
<CompilationDirectory>$(BaseOutputDirectory)/compilation</CompilationDirectory> <CompilationDirectory>$(BaseOutputDirectory)/compilation</CompilationDirectory>
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory> <IntermediateDirectory>$(BaseOutputDirectory)/int</IntermediateDirectory>
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory> <PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
<SharedFrameworkPublishDirectory>$(IntermediateDirectory)/sharedFrameworkPublish</SharedFrameworkPublishDirectory> <SharedFrameworkPublishDirectory>$(IntermediateDirectory)/sharedFrameworkPublish</SharedFrameworkPublishDirectory>
<AspNetCoreSharedFxPublishDirectory>$(IntermediateDirectory)/aspnetSharedFxPublish</AspNetCoreSharedFxPublishDirectory> <AspNetCoreSharedFxPublishDirectory>$(IntermediateDirectory)/aspnetSharedFxPublish</AspNetCoreSharedFxPublishDirectory>

View file

@ -22,12 +22,12 @@
<Target Name="SetSigningProperties"> <Target Name="SetSigningProperties">
<Error Condition="'$(Rid)' == ''" Text="Missing required property 'Rid'." /> <Error Condition="'$(Rid)' == ''" Text="Missing required property 'Rid'." />
<PropertyGroup> <PropertyGroup>
<SdkResolverOutputDirectory>$(BaseOutputDirectory)/intermediate/MSBuildExtensionsLayout/MSBuildSdkResolver</SdkResolverOutputDirectory> <SdkResolverOutputDirectory>$(IntermediateDirectory)/MSBuildExtensionsLayout/MSBuildSdkResolver</SdkResolverOutputDirectory>
<!-- The OutDir and IntermediateOutputPath properties are required by MicroBuild. MicroBuild only <!-- The OutDir and IntermediateOutputPath properties are required by MicroBuild. MicroBuild only
signs files that are under these paths. --> signs files that are under these paths. -->
<OutDir Condition="'$(OutDir)' == ''">$(BaseOutputDirectory)</OutDir> <OutDir Condition="'$(OutDir)' == ''">$(BaseOutputDirectory)</OutDir>
<IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(BaseOutputDirectory)/intermediate</IntermediateOutputPath> <IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(IntermediateDirectory)</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
</Target> </Target>

View file

@ -1,9 +1,9 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<VersionMajor>2</VersionMajor> <VersionMajor>2</VersionMajor>
<VersionMinor>1</VersionMinor> <VersionMinor>2</VersionMinor>
<VersionPatch>400</VersionPatch> <VersionPatch>100</VersionPatch>
<ReleaseSuffix Condition=" '$(ReleaseSuffix)' == '' ">preview</ReleaseSuffix> <ReleaseSuffix Condition=" '$(ReleaseSuffix)' == '' ">preview1</ReleaseSuffix>
<MajorMinorVersion>$(VersionMajor).$(VersionMinor)</MajorMinorVersion> <MajorMinorVersion>$(VersionMajor).$(VersionMinor)</MajorMinorVersion>
<CliVersionNoSuffix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</CliVersionNoSuffix> <CliVersionNoSuffix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</CliVersionNoSuffix>

View file

@ -26,7 +26,7 @@ function DownloadNugetExe
if (-not (Test-Path $NuGetExe)) { if (-not (Test-Path $NuGetExe)) {
Write-Output 'Downloading nuget.exe to ' + $NuGetExe Write-Output 'Downloading nuget.exe to ' + $NuGetExe
wget https://dist.nuget.org/win-x86-commandline/v3.5.0-rc1/NuGet.exe -OutFile $NuGetExe wget https://dist.nuget.org/win-x86-commandline/v4.7.0/nuget.exe -OutFile $NuGetExe
} }
} }

View file

@ -628,7 +628,7 @@ extract_dotnet_package() {
tar -xzf "$zip_path" -C "$temp_out_path" > /dev/null || failed=true tar -xzf "$zip_path" -C "$temp_out_path" > /dev/null || failed=true
local folders_with_version_regex='^.*/[0-9]+\.[0-9]+[^/]+/' local folders_with_version_regex='^.*/[0-9]+\.[0-9]+[^/]+/'
find "$temp_out_path" -type f | grep -Eo "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" false find "$temp_out_path" -type f | grep -Eo "$folders_with_version_regex" | sort | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" false
find "$temp_out_path" -type f | grep -Ev "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" "$override_non_versioned_files" find "$temp_out_path" -type f | grep -Ev "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" "$override_non_versioned_files"
rm -rf "$temp_out_path" rm -rf "$temp_out_path"

View file

@ -1,14 +1,12 @@
#!/bin/bash
# bash parameter completion for the dotnet CLI # bash parameter completion for the dotnet CLI
_dotnet_bash_complete() _dotnet_bash_complete()
{ {
local word=${COMP_WORDS[COMP_CWORD]} local word=${COMP_WORDS[COMP_CWORD]}
local dotnetPath=${COMP_WORDS[1]}
local completions=("$(dotnet complete --position ${COMP_POINT} "${COMP_LINE}")") local completions=("$(dotnet complete --position ${COMP_POINT} "${COMP_LINE}")")
COMPREPLY=( $(compgen -W "$completions" -- "$word") ) COMPREPLY=( $(compgen -W "$completions" -- "$word") )
} }
complete -f -F _dotnet_bash_complete dotnet complete -f -F _dotnet_bash_complete dotnet

View file

@ -2,11 +2,9 @@
_dotnet_zsh_complete() _dotnet_zsh_complete()
{ {
local dotnetPath=$words[1]
local completions=("$(dotnet complete "$words")") local completions=("$(dotnet complete "$words")")
reply=( "${(ps:\n:)completions}" ) reply=( "${(ps:\n:)completions}" )
} }
compctl -K _dotnet_zsh_complete dotnet compctl -K _dotnet_zsh_complete dotnet

View file

@ -9,7 +9,7 @@ namespace Microsoft.DotNet.Cli.Telemetry
internal static class Sha256Hasher internal static class Sha256Hasher
{ {
/// <summary> /// <summary>
/// // The hashed mac address needs to be the same hashed value as produced by the other distinct sources given the same input. (e.g. VsCode) /// The hashed mac address needs to be the same hashed value as produced by the other distinct sources given the same input. (e.g. VsCode)
/// </summary> /// </summary>
public static string Hash(string text) public static string Hash(string text)
{ {

View file

@ -141,14 +141,7 @@ namespace Microsoft.DotNet.Cli.Telemetry
{ {
foreach (KeyValuePair<string, double> measurement in measurements) foreach (KeyValuePair<string, double> measurement in measurements)
{ {
if (eventMeasurements.ContainsKey(measurement.Key)) eventMeasurements[measurement.Key] = measurement.Value;
{
eventMeasurements[measurement.Key] = measurement.Value;
}
else
{
eventMeasurements.Add(measurement.Key, measurement.Value);
}
} }
} }
return eventMeasurements; return eventMeasurements;
@ -161,14 +154,7 @@ namespace Microsoft.DotNet.Cli.Telemetry
var eventProperties = new Dictionary<string, string>(_commonProperties); var eventProperties = new Dictionary<string, string>(_commonProperties);
foreach (KeyValuePair<string, string> property in properties) foreach (KeyValuePair<string, string> property in properties)
{ {
if (eventProperties.ContainsKey(property.Key)) eventProperties[property.Key] = property.Value;
{
eventProperties[property.Key] = property.Value;
}
else
{
eventProperties.Add(property.Key, property.Value);
}
} }
return eventProperties; return eventProperties;
} }

View file

@ -59,7 +59,7 @@ namespace Microsoft.DotNet.Cli
try try
{ {
var cancellation = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellation = new CancellationTokenSource(TimeSpan.FromSeconds(10));
var response = httpClient.GetAsync($"https://api-v2v3search-0.nuget.org/query?q={match}&skip=0&take=100&prerelease=true", cancellation.Token) var response = httpClient.GetAsync($"https://api-v2v3search-0.nuget.org/autocomplete?q={match}&skip=0&take=100", cancellation.Token)
.Result; .Result;
result = response.Content.ReadAsStreamAsync().Result; result = response.Content.ReadAsStreamAsync().Result;
@ -77,7 +77,7 @@ namespace Microsoft.DotNet.Cli
foreach (var id in json["data"]) foreach (var id in json["data"])
{ {
yield return id["id"].Value<string>(); yield return id.Value<string>();
} }
} }
} }

View file

@ -156,7 +156,7 @@
<data name="CmdLoggerDescription" xml:space="preserve"> <data name="CmdLoggerDescription" xml:space="preserve">
<value>The logger to use for test results. <value>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</value> See https://aka.ms/vstest-report for more information on logger arguments.</value>
</data> </data>
@ -208,4 +208,4 @@ Outputs a 'Sequence.xml' file in the current directory that captures the order o
<data name="ConfigurationOptionDescription" xml:space="preserve"> <data name="ConfigurationOptionDescription" xml:space="preserve">
<value>The configuration to use for running tests. The default for most projects is 'Debug'.</value> <value>The configuration to use for running tests. The default for most projects is 'Debug'.</value>
</data> </data>
</root> </root>

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Zadejte protokolovací nástroj pro výsledky testů. <target state="needs-review-translation">Zadejte protokolovací nástroj pro výsledky testů.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Geben Sie einen Protokollierer für Testergebnisse an. <target state="needs-review-translation">Geben Sie einen Protokollierer für Testergebnisse an.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Especifique un registrador para los resultados de la prueba. <target state="needs-review-translation">Especifique un registrador para los resultados de la prueba.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Spécifiez un journal pour les résultats de test. <target state="needs-review-translation">Spécifiez un journal pour les résultats de test.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Consente di specificare un logger per i risultati dei test. <target state="needs-review-translation">Consente di specificare un logger per i risultati dei test.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">テスト結果のロガーを指定します。 <target state="needs-review-translation">テスト結果のロガーを指定します。

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">테스트 결과에 대해 로거를 지정합니다. <target state="needs-review-translation">테스트 결과에 대해 로거를 지정합니다.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Określ rejestrator dla wyników testów. <target state="needs-review-translation">Określ rejestrator dla wyników testów.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Especifique um agente para os resultados de teste. <target state="needs-review-translation">Especifique um agente para os resultados de teste.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Укажите средство ведения журнала для результатов теста. <target state="needs-review-translation">Укажите средство ведения журнала для результатов теста.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">Test sonuçları için bir günlükçü belirtin. <target state="needs-review-translation">Test sonuçları için bir günlükçü belirtin.

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">为测试结果指定一个记录器。 <target state="needs-review-translation">为测试结果指定一个记录器。

View file

@ -63,7 +63,7 @@
<trans-unit id="CmdLoggerDescription"> <trans-unit id="CmdLoggerDescription">
<source>The logger to use for test results. <source>The logger to use for test results.
Examples: Examples:
Log in trx format using a unqiue file name: --logger trx Log in trx format using a unique file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;" Log in trx format using the specified file name: --logger "trx;LogFileName=&lt;TestResults.trx&gt;"
See https://aka.ms/vstest-report for more information on logger arguments.</source> See https://aka.ms/vstest-report for more information on logger arguments.</source>
<target state="needs-review-translation">指定測試結果的記錄器。 <target state="needs-review-translation">指定測試結果的記錄器。

View file

@ -259,7 +259,7 @@
</Target> </Target>
<Target Name="CrossgenPublishDir" <Target Name="CrossgenPublishDir"
Condition=" '$(DISABLE_CROSSGEN)' == '' And !$(Architecture.StartsWith('arm')) " Condition=" '$(DISABLE_CROSSGEN)' == '' And '$(Architecture)' != 'arm' "
AfterTargets="PublishSdks"> AfterTargets="PublishSdks">
<ItemGroup> <ItemGroup>
<RoslynFiles Include="$(PublishDir)Roslyn\bincore\**\*" /> <RoslynFiles Include="$(PublishDir)Roslyn\bincore\**\*" />

View file

@ -209,7 +209,7 @@ namespace EndToEnd
?.Version; ?.Version;
} }
public static string LatestSupportedAspNetCoreAppVersion = "2.1"; public static string LatestSupportedAspNetCoreAppVersion = "2.2";
public static IEnumerable<object[]> SupportedAspNetCoreAppVersions public static IEnumerable<object[]> SupportedAspNetCoreAppVersions
{ {

View file

@ -112,7 +112,7 @@ namespace Microsoft.DotNet.Tests.EndToEnd
new DotnetCommand(DotnetUnderTest.WithBackwardsCompatibleRuntimes) new DotnetCommand(DotnetUnderTest.WithBackwardsCompatibleRuntimes)
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.ExecuteWithCapturedOutput( .ExecuteWithCapturedOutput(
$"-d dependency-tool-invoker -c {configuration} -f netcoreapp2.1 portable") $"-d dependency-tool-invoker -c {configuration} -f netcoreapp2.2 portable")
.Should().Pass() .Should().Pass()
.And.HaveStdOutContaining("Hello Portable World!");; .And.HaveStdOutContaining("Hello Portable World!");;
} }

View file

@ -190,7 +190,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
.Should().Pass(); .Should().Pass();
var factory = new ProjectDependenciesCommandFactory( var factory = new ProjectDependenciesCommandFactory(
NuGetFrameworks.NetCoreApp21, NuGetFrameworks.NetCoreApp22,
configuration, configuration,
null, null,
null, null,
@ -199,7 +199,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
var command = factory.Create("dotnet-tool-with-output-name", null); var command = factory.Create("dotnet-tool-with-output-name", null);
command.CommandArgs.Should().Contain( command.CommandArgs.Should().Contain(
Path.Combine("toolwithoutputname", "1.0.0", "lib", "netcoreapp2.1", "dotnet-tool-with-output-name.dll")); Path.Combine("toolwithoutputname", "1.0.0", "lib", "netcoreapp2.2", "dotnet-tool-with-output-name.dll"));
} }
} }
} }

View file

@ -48,7 +48,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
Configuration = "Debug", Configuration = "Debug",
ProjectDirectory = MSBuildTestProjectInstance.Root.FullName, ProjectDirectory = MSBuildTestProjectInstance.Root.FullName,
Framework = NuGetFrameworks.NetCoreApp21 Framework = NuGetFrameworks.NetCoreApp22
}; };
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments); var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
@ -84,7 +84,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
Configuration = "Debug", Configuration = "Debug",
ProjectDirectory = MSBuildTestProjectInstance.Root.FullName, ProjectDirectory = MSBuildTestProjectInstance.Root.FullName,
Framework = NuGetFrameworks.NetCoreApp21 Framework = NuGetFrameworks.NetCoreApp22
}; };
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments); var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
@ -110,7 +110,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
CommandName = "nonexistent-command", CommandName = "nonexistent-command",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = MSBuildTestProjectInstance.Root.FullName, ProjectDirectory = MSBuildTestProjectInstance.Root.FullName,
Framework = NuGetFrameworks.NetCoreApp21 Framework = NuGetFrameworks.NetCoreApp22
}; };
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments); var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
@ -136,7 +136,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
Configuration = "Debug", Configuration = "Debug",
ProjectDirectory = testInstance.Root.FullName, ProjectDirectory = testInstance.Root.FullName,
Framework = NuGetFrameworks.NetCoreApp21, Framework = NuGetFrameworks.NetCoreApp22,
OutputPath = outputDir.FullName OutputPath = outputDir.FullName
}; };

View file

@ -19,7 +19,7 @@ namespace Microsoft.DotNet.Tests
public class GivenAProjectToolsCommandResolver : TestBase public class GivenAProjectToolsCommandResolver : TestBase
{ {
private static readonly NuGetFramework s_toolPackageFramework = private static readonly NuGetFramework s_toolPackageFramework =
NuGetFrameworks.NetCoreApp21; NuGetFrameworks.NetCoreApp22;
private const string TestProjectName = "AppWithToolDependency"; private const string TestProjectName = "AppWithToolDependency";
@ -304,7 +304,7 @@ namespace Microsoft.DotNet.Tests
result.Should().NotBeNull(); result.Should().NotBeNull();
result.Args.Should().Contain("--fx-version 2.1.0"); result.Args.Should().Contain("--fx-version 2.2.0");
} }
[Fact] [Fact]
@ -370,7 +370,7 @@ namespace Microsoft.DotNet.Tests
"dotnet-fallbackfoldertool", "dotnet-fallbackfoldertool",
"1.0.0", "1.0.0",
"lib", "lib",
"netcoreapp2.1", "netcoreapp2.2",
"dotnet-fallbackfoldertool.dll")); "dotnet-fallbackfoldertool.dll"));
} }

View file

@ -1,49 +0,0 @@
// 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;
using System.IO;
using FluentAssertions;
using Microsoft.DotNet.Cli;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.InternalAbstractions;
using Microsoft.DotNet.TestFramework;
using Microsoft.DotNet.Tools.Test.Utilities;
using NuGet.Frameworks;
using NuGet.ProjectModel;
using Xunit;
namespace Microsoft.DotNet.Cli.Utils.Tests
{
public class GivenThatWeWantToReadLockFilesQuickly : TestBase
{
[Fact]
public void ItFailsInLessThanOneSecondWhenTheProjectAssetsJsonDoesNotExist()
{
var testInstance = TestAssets.Get("TestAppWithProjDepTool")
.CreateInstance()
.WithSourceFiles();
var assetsFile = testInstance.Root.GetDirectory("obj").GetFile("project.assets.json").FullName;
var expectedMessage = string.Join(
Environment.NewLine,
string.Format(LocalizableStrings.FileNotFound, assetsFile),
LocalizableStrings.ProjectNotRestoredOrRestoreFailed);
Action action = () =>
{
var lockFile = new LockFileFormat()
.ReadWithLock(assetsFile)
.Result;
};
var stopWatch = Stopwatch.StartNew();
action.ShouldThrow<GracefulException>().WithMessage(expectedMessage);
stopWatch.Stop();
stopWatch.ElapsedMilliseconds.Should().BeLessThan(1000);
}
}
}

View file

@ -10,5 +10,8 @@ namespace Microsoft.DotNet.Tools.Tests.Utilities
{ {
public static readonly NuGetFramework NetCoreApp21 public static readonly NuGetFramework NetCoreApp21
= new NuGetFramework(FrameworkConstants.FrameworkIdentifiers.NetCoreApp, new Version(2, 1, 0, 0)); = new NuGetFramework(FrameworkConstants.FrameworkIdentifiers.NetCoreApp, new Version(2, 1, 0, 0));
public static readonly NuGetFramework NetCoreApp22
= new NuGetFramework(FrameworkConstants.FrameworkIdentifiers.NetCoreApp, new Version(2, 2, 0, 0));
} }
} }

View file

@ -107,7 +107,7 @@ namespace Microsoft.DotNet.Cli.Package.Add.Tests
var packageName = "Newtonsoft.Json"; var packageName = "Newtonsoft.Json";
var packageVersion = "9.0.1"; var packageVersion = "9.0.1";
var framework = "netcoreapp2.1"; var framework = "netcoreapp2.2";
var cmd = new DotnetCommand() var cmd = new DotnetCommand()
.WithWorkingDirectory(projectDirectory) .WithWorkingDirectory(projectDirectory)
.ExecuteWithCapturedOutput($"add package {packageName} --version {packageVersion} --framework {framework}"); .ExecuteWithCapturedOutput($"add package {packageName} --version {packageVersion} --framework {framework}");

View file

@ -29,7 +29,7 @@ namespace Microsoft.DotNet.Cli.Build.Tests
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
var outputDll = testInstance.Root.GetDirectory("bin", configuration, "netcoreapp2.1") var outputDll = testInstance.Root.GetDirectory("bin", configuration, "netcoreapp2.2")
.GetFile($"{testAppName}.dll"); .GetFile($"{testAppName}.dll");
var outputRunCommand = new DotnetCommand(); var outputRunCommand = new DotnetCommand();
@ -66,7 +66,7 @@ namespace Microsoft.DotNet.Cli.Build.Tests
new BuildCommand() new BuildCommand()
.WithWorkingDirectory(projectDirectory) .WithWorkingDirectory(projectDirectory)
.Execute("--framework netcoreapp2.1") .Execute("--framework netcoreapp2.2")
.Should().Pass(); .Should().Pass();
} }

View file

@ -28,7 +28,7 @@ namespace Microsoft.DotNet.Cli.Clean.Tests
.Should().Pass(); .Should().Pass();
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
var outputFolder = testInstance.Root.GetDirectory("bin", configuration, "netcoreapp2.1", "win7-x64"); var outputFolder = testInstance.Root.GetDirectory("bin", configuration, "netcoreapp2.2", "win7-x64");
outputFolder.Should().NotBeEmpty(); outputFolder.Should().NotBeEmpty();

View file

@ -74,16 +74,16 @@ namespace Microsoft.DotNet.New.Tests
.Should().Pass(); .Should().Pass();
} }
// Remove the expectedVersion parameter once we have templates targetting netcoreapp2.2.
[Theory] [Theory]
[InlineData("console", "microsoft.netcore.app")] [InlineData("console", "microsoft.netcore.app", "2.1.0")]
// re-enable when this bug is resolved: https://github.com/dotnet/cli/issues/7574 [InlineData("classlib", "netstandard.library", null)]
[InlineData("classlib", "netstandard.library")] public void NewProjectRestoresCorrectPackageVersion(string type, string packageName, string expectedVersion)
public void NewProjectRestoresCorrectPackageVersion(string type, string packageName)
{ {
var rootPath = TestAssets.CreateTestDirectory(identifier: $"_{type}").FullName; var rootPath = TestAssets.CreateTestDirectory(identifier: $"_{type}").FullName;
var packagesDirectory = Path.Combine(rootPath, "packages"); var packagesDirectory = Path.Combine(rootPath, "packages");
var projectName = "Project"; var projectName = "Project";
var expectedVersion = GetFrameworkPackageVersion(); expectedVersion = expectedVersion ?? GetFrameworkPackageVersion();
var repoRootNuGetConfig = Path.Combine(RepoDirectoriesProvider.RepoRoot, "NuGet.Config"); var repoRootNuGetConfig = Path.Combine(RepoDirectoriesProvider.RepoRoot, "NuGet.Config");
@ -107,7 +107,7 @@ namespace Microsoft.DotNet.New.Tests
var sharedFxDir = dotnetDir var sharedFxDir = dotnetDir
.GetDirectory("shared", "Microsoft.NETCore.App") .GetDirectory("shared", "Microsoft.NETCore.App")
.EnumerateDirectories() .EnumerateDirectories()
.Single(d => d.Name.StartsWith("2.1.0")); .Single(d => d.Name.StartsWith("2.2.0"));
if (packageName == "microsoft.netcore.app") if (packageName == "microsoft.netcore.app")
{ {

View file

@ -33,11 +33,11 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
new PublishCommand() new PublishCommand()
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.Execute("--framework netcoreapp2.1") .Execute("--framework netcoreapp2.2")
.Should().Pass(); .Should().Pass();
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
var outputDll = Path.Combine(testProjectDirectory, "bin", configuration, "netcoreapp2.1", "publish", $"{testAppName}.dll"); var outputDll = Path.Combine(testProjectDirectory, "bin", configuration, "netcoreapp2.2", "publish", $"{testAppName}.dll");
new DotnetCommand() new DotnetCommand()
.ExecuteWithCapturedOutput(outputDll) .ExecuteWithCapturedOutput(outputDll)
@ -57,7 +57,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
new PublishCommand() new PublishCommand()
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.Execute("--framework netcoreapp2.1") .Execute("--framework netcoreapp2.2")
.Should().Pass(); .Should().Pass();
} }
@ -74,7 +74,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
new PublishCommand() new PublishCommand()
.WithWorkingDirectory(projectDirectory) .WithWorkingDirectory(projectDirectory)
.Execute("--framework netcoreapp2.1") .Execute("--framework netcoreapp2.2")
.Should().Pass(); .Should().Pass();
} }
@ -90,7 +90,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
new PublishCommand() new PublishCommand()
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.ExecuteWithCapturedOutput("--framework netcoreapp2.1 --no-restore") .ExecuteWithCapturedOutput("--framework netcoreapp2.2 --no-restore")
.Should().Fail() .Should().Fail()
.And.HaveStdOutContaining("project.assets.json"); .And.HaveStdOutContaining("project.assets.json");
} }
@ -110,7 +110,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
var rid = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier(); var rid = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
new PublishCommand() new PublishCommand()
.WithFramework("netcoreapp2.1") .WithFramework("netcoreapp2.2")
.WithRuntime(rid) .WithRuntime(rid)
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.Execute() .Execute()
@ -119,7 +119,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
var outputProgram = testProjectDirectory var outputProgram = testProjectDirectory
.GetDirectory("bin", configuration, "netcoreapp2.1", rid, "publish", $"{testAppName}{Constants.ExeSuffix}") .GetDirectory("bin", configuration, "netcoreapp2.2", rid, "publish", $"{testAppName}{Constants.ExeSuffix}")
.FullName; .FullName;
EnsureProgramIsRunnable(outputProgram); EnsureProgramIsRunnable(outputProgram);
@ -185,7 +185,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
return testProjectDirectory return testProjectDirectory
.GetDirectory("bin", configuration, "netcoreapp2.1", rid, "publish"); .GetDirectory("bin", configuration, "netcoreapp2.2", rid, "publish");
} }
private static void EnsureProgramIsRunnable(string path) private static void EnsureProgramIsRunnable(string path)

View file

@ -70,7 +70,7 @@ namespace Microsoft.DotNet.Cli.Run.Tests
new RunCommand() new RunCommand()
.WithWorkingDirectory(projectDirectory) .WithWorkingDirectory(projectDirectory)
.ExecuteWithCapturedOutput("--framework netcoreapp2.1") .ExecuteWithCapturedOutput("--framework netcoreapp2.2")
.Should().Pass() .Should().Pass()
.And.HaveStdOutContaining("This string came from the test library!"); .And.HaveStdOutContaining("This string came from the test library!");
} }
@ -150,7 +150,7 @@ namespace Microsoft.DotNet.Cli.Run.Tests
new RunCommand() new RunCommand()
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.ExecuteWithCapturedOutput("--framework netcoreapp2.1") .ExecuteWithCapturedOutput("--framework netcoreapp2.2")
.Should().Pass() .Should().Pass()
.And.HaveStdOut("Hello World!"); .And.HaveStdOut("Hello World!");
} }

View file

@ -13,7 +13,7 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
{ {
public class GivenDotnetStoresAndPublishesProjects : TestBase public class GivenDotnetStoresAndPublishesProjects : TestBase
{ {
private static string _tfm = "netcoreapp2.1"; private static string _tfm = "netcoreapp2.2";
private static string _frameworkVersion = TestAssetInstance.CurrentRuntimeFrameworkVersion; private static string _frameworkVersion = TestAssetInstance.CurrentRuntimeFrameworkVersion;
private static string _arch = RuntimeEnvironment.RuntimeArchitecture.ToLowerInvariant(); private static string _arch = RuntimeEnvironment.RuntimeArchitecture.ToLowerInvariant();

View file

@ -97,7 +97,7 @@ namespace Microsoft.DotNet.Cli.Test.Tests
new DotnetTestCommand() new DotnetTestCommand()
.WithWorkingDirectory(projectDirectory) .WithWorkingDirectory(projectDirectory)
.ExecuteWithCapturedOutput($"{TestBase.ConsoleLoggerOutputNormal} --framework netcoreapp2.1") .ExecuteWithCapturedOutput($"{TestBase.ConsoleLoggerOutputNormal} --framework netcoreapp2.2")
.Should().Pass(); .Should().Pass();
} }
} }

Some files were not shown because too many files have changed in this diff Show more