diff --git a/MedallionShell/MedallionShell.csproj b/MedallionShell/MedallionShell.csproj
index a04194c..3efaeac 100644
--- a/MedallionShell/MedallionShell.csproj
+++ b/MedallionShell/MedallionShell.csproj
@@ -22,6 +22,11 @@
4
Latest
enable
+
+ embedded
+
+ true
+ true
True
..\stylecop.analyzers.ruleset
@@ -56,6 +61,12 @@
all
+
+ all
+
+
+
+
diff --git a/MedallionShell/PublicAPI/net45/PublicAPI.Shipped.txt b/MedallionShell/PublicAPI/net45/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..48d22c1
--- /dev/null
+++ b/MedallionShell/PublicAPI/net45/PublicAPI.Shipped.txt
@@ -0,0 +1,149 @@
+#nullable enable
+abstract Medallion.Shell.Command.Kill() -> void
+abstract Medallion.Shell.Command.Process.get -> System.Diagnostics.Process!
+abstract Medallion.Shell.Command.Processes.get -> System.Collections.Generic.IReadOnlyList!
+abstract Medallion.Shell.Command.ProcessId.get -> int
+abstract Medallion.Shell.Command.ProcessIds.get -> System.Collections.Generic.IReadOnlyList!
+abstract Medallion.Shell.Command.StandardError.get -> Medallion.Shell.Streams.ProcessStreamReader!
+abstract Medallion.Shell.Command.StandardInput.get -> Medallion.Shell.Streams.ProcessStreamWriter!
+abstract Medallion.Shell.Command.StandardOutput.get -> Medallion.Shell.Streams.ProcessStreamReader!
+abstract Medallion.Shell.Command.Task.get -> System.Threading.Tasks.Task!
+abstract Medallion.Shell.CommandLineSyntax.CreateArgumentString(System.Collections.Generic.IEnumerable! arguments) -> string!
+abstract Medallion.Shell.Streams.ProcessStreamReader.BaseStream.get -> System.IO.Stream!
+abstract Medallion.Shell.Streams.ProcessStreamReader.Discard() -> void
+abstract Medallion.Shell.Streams.ProcessStreamReader.Encoding.get -> System.Text.Encoding!
+abstract Medallion.Shell.Streams.ProcessStreamReader.StopBuffering() -> void
+Medallion.Shell.Command
+Medallion.Shell.Command.GetOutputAndErrorLines() -> System.Collections.Generic.IEnumerable!
+Medallion.Shell.Command.PipeTo(Medallion.Shell.Command! second) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectFrom(System.Collections.Generic.IEnumerable! chars) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectFrom(System.Collections.Generic.IEnumerable! lines) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectFrom(System.IO.FileInfo! file) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectFrom(System.IO.Stream! stream) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectFrom(System.IO.TextReader! reader) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectStandardErrorTo(System.Collections.Generic.ICollection! chars) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectStandardErrorTo(System.Collections.Generic.ICollection! lines) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectStandardErrorTo(System.IO.FileInfo! file) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectStandardErrorTo(System.IO.Stream! stream) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectStandardErrorTo(System.IO.TextWriter! writer) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectTo(System.Collections.Generic.ICollection! chars) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectTo(System.Collections.Generic.ICollection! lines) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectTo(System.IO.FileInfo! file) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectTo(System.IO.Stream! stream) -> Medallion.Shell.Command!
+Medallion.Shell.Command.RedirectTo(System.IO.TextWriter! writer) -> Medallion.Shell.Command!
+Medallion.Shell.Command.Result.get -> Medallion.Shell.CommandResult!
+Medallion.Shell.Command.TrySignalAsync(Medallion.Shell.CommandSignal! signal) -> System.Threading.Tasks.Task!
+Medallion.Shell.Command.Wait() -> void
+Medallion.Shell.CommandLineSyntax
+Medallion.Shell.CommandLineSyntax.CommandLineSyntax() -> void
+Medallion.Shell.CommandResult
+Medallion.Shell.CommandResult.ExitCode.get -> int
+Medallion.Shell.CommandResult.StandardError.get -> string!
+Medallion.Shell.CommandResult.StandardOutput.get -> string!
+Medallion.Shell.CommandResult.Success.get -> bool
+Medallion.Shell.CommandSignal
+Medallion.Shell.ErrorExitCodeException
+Medallion.Shell.ErrorExitCodeException.ExitCode.get -> int
+Medallion.Shell.Shell
+Medallion.Shell.Shell.Options
+Medallion.Shell.Shell.Options.CancellationToken(System.Threading.CancellationToken cancellationToken) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.Command(System.Action! initializer) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.Command(System.Func! initializer) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.DisposeOnExit(bool value = true) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.Encoding(System.Text.Encoding! encoding) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.EnvironmentVariable(string! name, string! value) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.EnvironmentVariables(System.Collections.Generic.IEnumerable>! environmentVariables) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.RestoreDefaults() -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.StartInfo(System.Action! initializer) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.Syntax(Medallion.Shell.CommandLineSyntax! syntax) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.ThrowOnError(bool value = true) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.Timeout(System.TimeSpan timeout) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Options.WorkingDirectory(string! path) -> Medallion.Shell.Shell.Options!
+Medallion.Shell.Shell.Run(string! executable, params object![]! arguments) -> Medallion.Shell.Command!
+Medallion.Shell.Shell.Run(string! executable, System.Collections.Generic.IEnumerable