diff --git a/src/powershell/README.md b/src/powershell/README.md new file mode 100644 index 0000000000..7745dd8c14 --- /dev/null +++ b/src/powershell/README.md @@ -0,0 +1,20 @@ +PowerShell +========== + +The `powershell[.exe]` executable for Open PowerShell is built by this project, +as it is the top dependency of the graph, and has `emitEntryPoint: true`, +meaning a native executable is produced automatically by CLI (no need to own a +separate native host). + +This project is a very simple shim that provides a `Main` function for .NET CLI +to produce an app. It initializes PowerShell's custom `AssemblyLoadContext` and +then delegates to the same `Start` function in +`Microsoft.PowerShell.ConsoleHost` that the original native PowerShell host +executes; thus we share the same entry point and the same PowerShell host, but +use a different native host. This lets us take full advantage of .NET CLI's +native host. + +We use this shim so that the `ConsoleHost` project and the original native host +do not have to be changed. Additionally, until .NET CLI bugs surrounding content +file deployment are solved, this shim allows us to continue with our split +`Modules` folders work-around to deploy the correct versions.