The projects build for net48 and net6.0-windows TFMs.

The aim is to show where the following runtime error occurs:
Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

ConsoleApp1
===========

Demonstrate the new dependence on the AutoGenerateBindRedirects (Added in 
.Net 4.5.1) feature

Change the connection string in Program.cs

There are 2 relevant configurations:
1. Debug - working code for both tfms
2. BrokenUnderNet4 - fails with dependency problem under net48, working code for
net6.0-windows

Build and run the ConsoleApp1 project and look at the results under the 4 
combinations:
. net48,          Debug
. net6.0-windows, Debug
. net48,          BrokenUnderNet4
. net6.0-windows, BrokenUnderNet4

When it fails the dependency issue is written in red to the console window.

Note if you change the NuGet package version to 8.0.32.1 or lower all 
configurations work correctly. 8.0.33 and above all fail for .net48.

ConsoleApp2
===========

Demonstrate a case where AutoGenerateBindingRedirects does not fix the problem

Change the connection string in PluginLibrary\Plugin.cs

Under either configuration:
1. ConsoleApp2 does not work because of incorrect dependency which rquires a 
binding redirect (Note AutoGenerateBindingRedirects IS turned on)

Firstly - why do we need a plugin? Because ORACLE uses GPL-2
Secondly - why do we need to put the plugin in its own folder? Because we want 
to support either the 5.7 or 8.0 clients without end users having to fiddle 
with dependencies themselves

The only way to make this work is to manually add the following to an App.config:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
      </dependentAssembly>
    </assemblyBinding>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

This step is now Forced on end users by 8.0.33 and above.