-
Notifications
You must be signed in to change notification settings - Fork 312
Get-PSReadLineOption : The type initializer for 'Microsoft.PowerShell.PSConsoleReadLine' threw an exception. #614
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
It looks like you built PSReadLine yourself - can you try with beta1 from the PSGallery? And if that doesn't repro, but it does repro with the latest, do let me know. I've done minimal testing on Win7 and haven't seen this. I have also done some testing with the "legacy" console on Win10 (from the console properties menu, on the Options tab, select "Use legacy console (requires relaunch)" - that option tends to help behavior specific to pre-Win10 systems. |
can you try with beta1 from the PSGallery? |
Thanks - I updated the issue template so the script now reports the prerelease version properly and also checks pwsh.exe. |
Same error on Windows 7 (via Install-Module) Same error on Windows Server 2016 : Install PowerShell-6.0.0-win-x64.msi PS C:\Program Files\PowerShell\6.0.0> $PSVersionTable
Name Value
---- -----
PSVersion 6.0.0
PSEdition Core
GitCommitId v6.0.0
OS Microsoft Windows 10.0.14393
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
PS C:\Program Files\PowerShell\6.0.0> get-module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clear-Content, Clear-Item, Clear-ItemPropert...
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script 1.1.7.0 PackageManagement {Find-Package, Find-PackageProvider, Get-Package, Get-Pack...
Script 1.6.0 PowerShellGet {Find-Command, Find-DscResource, Find-Module, Find-RoleCap...
Script 1.2 PSReadLine {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PS...
PS C:\Program Files\PowerShell\6.0.0> install-module psreadline -verbose -force -SkipPublisherCheck -AllowPrerelease
...
VERBOSE: InstallPackageLocal' - name='PSReadLine', version='2.0.0-beta1',destination='C:\Users\Laurent\AppData\Local\Temp\2\1222363818'
VERBOSE: Skipping the Publisher check for the version '2.0.0' of module 'PSReadLine'.
VERBOSE: Module 'PSReadLine' was installed successfully to path 'C:\Program Files\PowerShell\Modules\PSReadLine\2.0.0'.
#Close pwsh.exe
#run pwsh.exe
PS C:\Program Files\PowerShell\6.0.0> get-module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 2.0.0 PSReadLine {Get-PSReadLineKeyHandler, Get-PSReadLineOption, Remove-PS...
PS C:\Program Files\PowerShell\6.0.0> dir 'C:\Program Files\PowerShell\Modules\PSReadLine\2.0.0'
Directory: C:\Program Files\PowerShell\Modules\PSReadLine\2.0.0
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 1/17/2018 11:27 AM en-US
-a---- 12/5/2017 11:22 PM 14164 Changes.txt
-a---- 12/5/2017 11:22 PM 1322 License.txt
-a---- 12/5/2017 11:22 PM 249856 Microsoft.PowerShell.PSReadLine2.dll
-a---- 12/5/2017 11:22 PM 8770 PSReadLine.format.ps1xml
-a---- 12/5/2017 11:22 PM 869 PSReadLine.psd1
-a---- 12/5/2017 11:22 PM 180 PSReadLine.psm1
-a---- 12/5/2017 11:22 PM 21379 SamplePSReadLineProfile.ps1
-a---- 12/5/2017 11:22 PM 33256 System.Runtime.InteropServices.RuntimeInformation.dll
PS C:\Program Files\PowerShell\6.0.0> Get-PSReadLineOption
Get-PSReadLineOption : The type initializer for 'Microsoft.PowerShell.PSConsoleReadLine' threw an exception.
At line:1 char:1
+ Get-PSReadLineOption
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-PSReadLineOption], TypeInitializationException
+ FullyQualifiedErrorId : System.TypeInitializationException,Microsoft.PowerShell.GetPSReadLineOption |
I've the same issue after a upgrade of Windows 10 (insider preview). I'm not aware that I've installed PSReadLine so I think that it comes bundled with Win 10 (in fact, I cannot remove it via Remove/Uninstall-Module)
PSReadLine version: 2.0.0 |
I have the same issue here on Windows 7 with latest Powershell 6.1 installed : |
Get-PSReadLineOption : The type initializer for 'Microsoft.PowerShell.PSConsoleReadLine' threw an exception.
|
Same thing happens in latest win10 1809 insider build (build 17763.1) which will likely be the RTM build, any of the PSReadline commands throws an exception making it entirely useless PS version: 5.1.17763.1
|
@RobertSpir - I'll need some help tracking this down, I'm always using the latest and never hit this problem. A memory dump or time trace debug trace would be very helpful if you don't have time to investigate yourself. |
this happens on all three machines that are upgraded to 17763 |
downgrading to 1.2 fixed this issue |
Unfortunately the PowerShell debug trace isn't useful because PSReadLine is written in C#. Ideally I could get a TTD trace, but I could probably also debug from a memory dump. Note that if you can provide either - they both could contain secrets, e.g. all of your environment variables. Also note that either method will produce very large files, probably too large to email. If you can collect either the |
@RobertSpir provided a TTD trace and I think I understand the issue now. Can folks hitting this report back what keyboard layout or language you use? |
Thx for your tips, when I'm on french layout, I have the issue. I switch the keyboard layout to english, no more issue. |
The keyboard layout seems to be the issue, indeed. When using NEO 2.0 (special German layout) I experience the problem but switching to the ordinary built-in German layout fixes it (until switching back). Thanks for having a look at this! |
Have an idea what the issue is, working on a fix. |
Thanks. You can trying switching back to your preferred layout after PSReadLine is initialized, but there are known issues with switching after the process has started. One of those issues might be fixable withing PSReadLine, but there @powercode found that a Win32 api used by PSReadLine also does not work correctly when switching layouts. So for the time being, installing |
The problem seems to be that for some Windows keyboard layouts, the key modifiers are not considered distinct so that when the code here tries to add a new key into the dictionary, it already exists which throws an exception. My proposal for now is to not add keys that already exist. This doesn't fix the fundamental issue that some key bindings won't work for some keyboard layouts, but they wouldn't work currently anyways. The temporary fix will resolve the unhandled exception so that errors aren't being generated and |
Confirming that with this fix applied everything works with slovak keyboard layout |
Can you explain how to Apply fix ? can find how to do it … |
@eliohann you would need a new build of PSReadLine. There isn't a new beta coming soon, but you can pick up the nightly build which has the fix: https://ci.appveyor.com/project/lzybkr/PSReadLine/branch/master/artifacts |
@eliohann I installed the nightly build by replacing files in |
Is there a better solution now? I tried to use the artifact from the AppVeyor build but I get
|
I have the same error with a new install of Windows 10 Fr (1809). Installing the specified build no longer causes the exception, but some key combinations no longer work, for example ctrl-space. # Microsoft Windows [version 10.0.17763.253]
$psversiontable
Name Value
---- -----
PSVersion 5.1.17763.134
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17763.134}
BuildVersion 10.0.17763.134
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1 |
@LaurentDardenne that is a known issue and being addressed by #831 |
Strangely enough, I was able to get the previous version to work by simply renaming the 2.0.0 folder so that it doesn't respect the pattern. I might be very well be exposed to some error but so far I haven't experienced anything strange. |
@RobertSpir How did you downgrade to 1.2? I don't know how to downgrade, I created #860 question when I describe what I tried |
Ok, resolved at #860 (comment) |
Environment data
Steps to reproduce or exception report
Get-PSReadLineOption
Get-PSReadLineKeyHandler
note : the issue template dont reference 'pwsh.exe'
The text was updated successfully, but these errors were encountered: