Skip to content
This repository was archived by the owner on Apr 20, 2023. It is now read-only.

Update runtimeconfig.json doc for 2.1 #9382

Merged
merged 2 commits into from
Jun 4, 2018

Conversation

steveharter
Copy link
Member

Fixes https://github.com/dotnet/cli/issues/7861.

Update terminology, samples, and add new information for 2.1.0. There is still some detail regarding project.lock.json and other items that I didn't modify.

@steveharter steveharter self-assigned this May 31, 2018
* `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 framework-dependent applications, but not for self-contained apps.
* `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, as well as compilation context data, 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. If the file is not present, all assemblies in the current folder are used instead.

This comment was marked as spam.

This comment was marked as spam.

* Others _TBD_
* **Note:** This does not apply to `pre-release` versions; it applies only to `production` releases.
* **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]), Roll forward on [major] and [minor]

This comment was marked as spam.

This comment was marked as spam.

* **Note:** This does not apply to `pre-release` versions; it applies only to `production` releases.
* **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]), 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.

This comment was marked as spam.

This comment was marked as spam.


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).
These settings are read by `apphost` to determine how to initialize the runtime. All versions of `apphost` **must ignore** settings in this section that they do not understand (thus allowing new settings to be added in later versions).

This comment was marked as spam.

This comment was marked as spam.

}
}
```
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` (C#/VB), `allowUnsafe` (C#), etc.

This comment was marked as spam.

This comment was marked as spam.

@@ -338,9 +236,9 @@ 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).

This comment was marked as spam.

This comment was marked as spam.

@@ -2,206 +2,155 @@

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 [`apphost` spec](corehost.md) and via the `Microsoft.Extensions.DependencyModel` assembly.

This comment was marked as spam.

This comment was marked as spam.

@livarcocc livarcocc added this to the 2.2.1xx milestone Jun 1, 2018
@steveharter
Copy link
Member Author

Any other comments? I need at least one "approval" to commit. Thanks

@steveharter steveharter merged commit f45acc5 into dotnet:master Jun 4, 2018
@steveharter steveharter deleted the UpdateDepsJsonDoc branch June 4, 2018 19:46
livarcocc added a commit to livarcocc/cli-1 that referenced this pull request Jun 8, 2018
* master: (31 commits)
  Updating signing project to use new intermediate directory (int).
  Update runtimeconfig.json doc for 2.1 (dotnet#9382)
  Shortening the path to the intermediate folder by renaming it to int.
  fix typo (dotnet#9364)
  Updating asp.net to 2.2.0 as well.
  Updating the build and tests to work with the 2.2.0 runtime.
  Simplified combining dictionaries in Telemetry
  Fixing 'Channel' and 'BranchName': "release/2.1.4xx" to "master" (dotnet#9362)
  Fix extraction of folders (dotnet#9335)
  Update Sha256Hasher.cs
  Fix relative path tool path (dotnet#9330)
  Insert updated SDK from 2.1.4xx branch
  MSBuild 15.8.60
  Fix crash when user home directory cannot be determined.
  Make `CliFolderPathCalculator` a static class.
  Don't add the ReleaseSuffix to the branding on the CLI when DropSuffix is set to true.
  Add retry when Directory.Move (dotnet#9313)
  Override new SdkResult public properties
  Add reference to Microsoft.Build.NuGetSdkResolver
  Disable crossgen for MSBuild inline-task refs
  ...

	README.md
	build/BranchInfo.props
	build/BundledTemplates.props
	build/DependencyVersions.props
	build/Version.props
	src/redist/redist.csproj
	test/EndToEnd/GivenAspNetAppsResolveImplicitVersions.cs
	tools/CrossGen.Dependencies/CrossGen.Dependencies.csproj
dotnet-maestro-bot pushed a commit to dotnet-maestro-bot/cli that referenced this pull request Aug 7, 2018
…e_master_cli

* 'master' of /Users/livarcocc/Documents/git/cli: (1063 commits)
  Updating signing project to use new intermediate directory (int).
  Update runtimeconfig.json doc for 2.1 (dotnet#9382)
  Shortening the path to the intermediate folder by renaming it to int.
  fix typo (dotnet#9364)
  Updating asp.net to 2.2.0 as well.
  Updating the build and tests to work with the 2.2.0 runtime.
  Simplified combining dictionaries in Telemetry
  Fixing 'Channel' and 'BranchName': "release/2.1.4xx" to "master" (dotnet#9362)
  Fix extraction of folders (dotnet#9335)
  Update Sha256Hasher.cs
  Fix relative path tool path (dotnet#9330)
  Insert updated SDK from 2.1.4xx branch
  MSBuild 15.8.60
  Fix crash when user home directory cannot be determined.
  Make `CliFolderPathCalculator` a static class.
  Don't add the ReleaseSuffix to the branding on the CLI when DropSuffix is set to true.
  Add retry when Directory.Move (dotnet#9313)
  Override new SdkResult public properties
  Add reference to Microsoft.Build.NuGetSdkResolver
  Disable crossgen for MSBuild inline-task refs
  ...
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants