# .NET Core 2.1 RC 1 Known Issues

This document lists known issues for **.NET Core 2.1 RC 1** which may be encountered during usage.

## CoreFX

### System.IO

([corefx/29368](https://github.com/dotnet/corefx/issues/29368))

Recursive enumeration of file/directory strings has an extra separator for subdirectories when passed an original path with a trailing separator. (Directory.EnumerateFiles/GetFiles/EnumerateDirectories/GetDirectories/EnumerateFileSystemEntries/GetFileSystemEntries with the SearchOption.AllDirectories option)

*Workaround* - Trim the trailing separator on the path argument or call Path.GetFullPath() on the result.

([corefx/29095](https://github.com/dotnet/corefx/issues/29095))

Directories are not recognized as directories when enumerating on some Unix distributions. If the file system returns a type of DT_UNKNOWN .NET will always assume it is a file.

*Workaround* None.

** System.Security** ([corefx/29345](https://github.com/dotnet/corefx/issues/29345))

EnvelopedCms.Decode on Linux and macOS cannot read files produced by Bouncy Castle

*Workaround* - Convert the file from an indefinite length encoding to a definite length encoding.  For example, load the file on Windows and write it back by calling EnvelopedCms.Encode().

### Global Tools

**Global Tools targeting Preview or RC will not "roll-forward" to RTM**

Global Tools are framework-dependent applications and subject to the same .NET Core runtime selection behavior as other applications. A key behavior is that preview releases do not roll-forward to a final (AKA "RTM") release in the absence of a preview release being installed on a given machine. Tool writers that publish tools for a preview need to publish releases for later previews and the final release in order for those tools to work for their users.

*Workaround* When .NET Core SDK is released (RTM), authors need to rebuild and re-publish their tools with the released RTM SDK.

**Global Tools created with .NET Core SDK 2.1.300 Preview 1 are not compatible with later versions.**

Also: Ensure that global.json does not pin to .NET Core SDK 2.1.300 Preview 1 on either for a  directory where you are developing global tools or a directory from which you are installing global tools.

*Workaround* - Manually remove these tools.

**Global Tool shim fails if .NET Core is not installed in default location** ([cli/9114](https://github.com/dotnet/cli/issues/9114))

*Workaround* - Set %DOTNET_ROOT% to point to your .NET Core installation

**Global Tools must target .NET Core Runtime 2.1 or higher** ([cli/9073](https://github.com/dotnet/cli/issues/9073))

*Workaround* - Upgrade to target .NET Core Runtime 2.1

### Installing on Linux using the installers installs the latest available dotnet-host package

There is an issue with dotnet-host 2.1.0-preview2-26406-04-1 which introduces a dependency incompatibility. [core-setup/issues/2128](https://github.com/dotnet/core-setup/issues/4007). This is only a problem when installing a previous version of .NET Core on a clean machine. For example, if you installed dotnet-runtime-2.0.6, the RC 1 host will be installed but not the rest of RC 1.

We have temporarily removed the RC 1 installers from the Linux package feeds until this is fully resolved.

**Workaround** - If you have gotten into this state, downgrade the dotnet-host pacakge to an older version.

```bash
sudo apt install dotnet-host=2.0.6-1
```
