You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Get-PSReadLineOption : The type initializer for 'Microsoft.PowerShell.PSConsoleReadLine' threw an exception. #614
$PSVersionTable
Name Value
---------
PSVersion 6.0.0-rc.2
PSEdition Core
GitCommitId v6.0.0-rc.2
OS Microsoft Windows 6.1.7601 S
Platform Win32NT
PSCompatibleVersions {1.0,2.0,3.0,4.0,5.0,5.1.10032.0,6.0.0-rc.2}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Steps to reproduce or exception report
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
Get-PSReadLineKeyHandler
Get-PSReadLineKeyHandler : The type initializer for 'Microsoft.PowerShell.PSConsoleReadLine' threw an exception.
At line:1 char:1
+ Get-PSReadLineKeyHandler
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-PSReadLineKeyHandler], TypeInitializationException
+ FullyQualifiedErrorId : System.TypeInitializationException,Microsoft.PowerShell.GetKeyHandlerCommand
note : the issue template dont reference 'pwsh.exe'
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?
This version comes from PSGallery, via Install-Module.
I can test again on Win7 and on a new VM with Server 2016.
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)
Name Value
---- -----
PSVersion 6.1.0-rc.1
PSEdition Core
GitCommitId 6.1.0-rc.1
OS Microsoft Windows 10.0.17744
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
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
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 .run file form TTD or the .dmp file from .dump, then I can set up a secure location to share the file - you can email me or PM on twitter, whatever works for you.
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!
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 Staffan Gustafsson (@powercode) found that a Win32 api used by PSReadLine also does not work correctly when switching layouts.
So for the time being, installing 1.2 might be the best workaround.
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 Get-PSReadLineOption works for different keyboard layouts beyond En-US.
Vincent (@eliohann) I installed the nightly build by replacing files in C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0
And now it works with my custom keyboard layout !
Activity
lzybkr commentedon Jan 16, 2018
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.
LaurentDardenne commentedon Jan 16, 2018
can you try with beta1 from the PSGallery?
This version comes from PSGallery, via Install-Module.
I can test again on Win7 and on a new VM with Server 2016.
lzybkr commentedon Jan 16, 2018
Thanks - I updated the issue template so the script now reports the prerelease version properly and also checks pwsh.exe.
LaurentDardenne commentedon Jan 17, 2018
Same error on Windows 7 (via Install-Module)
Same error on Windows Server 2016 :
New Azure VM : Windows Server 2016 Datacenter - with Containers
Install PowerShell-6.0.0-win-x64.msi
tobiasdiez commentedon Sep 5, 2018
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
KurtDeGreeff commentedon Sep 17, 2018
I have the same issue here on Windows 7 with latest Powershell 6.1 installed :
KurtDeGreeff commentedon Sep 17, 2018
Get-PSReadLineOption : The type initializer for 'Microsoft.PowerShell.PSConsoleReadLine' threw an exception.
At line:1 char:1
RobertSpir commentedon Sep 24, 2018
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
PSReadline version: 2.0.0-beta2
os: 10.0.17763.1 (WinBuild.160101.0800)
PS file version: 10.0.17763.1 (WinBuild.160101.0800)
lzybkr commentedon Sep 24, 2018
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.
RobertSpir commentedon Sep 25, 2018
this happens on all three machines that are upgraded to 17763
RobertSpir commentedon Sep 25, 2018
downgrading to 1.2 fixed this issue
lzybkr commentedon Sep 25, 2018
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
.runfile form TTD or the.dmpfile from.dump, then I can set up a secure location to share the file - you can email me or PM on twitter, whatever works for you.lzybkr commentedon Sep 26, 2018
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?
copdips commentedon Sep 26, 2018
Jason Shirk (@lzybkr),
Thx for your tips, when I'm on french layout, I have the issue. I switch the keyboard layout to english, no more issue.
tobiasdiez commentedon Sep 26, 2018
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!
2 remaining items
lzybkr commentedon Sep 26, 2018
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 Staffan Gustafsson (@powercode) found that a Win32 api used by PSReadLine also does not work correctly when switching layouts.
So for the time being, installing
1.2might be the best workaround.SteveL-MSFT commentedon Sep 27, 2018
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
Get-PSReadLineOptionworks for different keyboard layouts beyond En-US.RobertSpir commentedon Sep 27, 2018
Confirming that with this fix applied everything works with slovak keyboard layout
Fix initialization for non-US keyboards (#768)
eliohann commentedon Oct 28, 2018
Can you explain how to Apply fix ? can find how to do it …
SteveL-MSFT commentedon Oct 28, 2018
Vincent (@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
Nicolas01 commentedon Nov 12, 2018
Vincent (@eliohann) I installed the nightly build by replacing files in
C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0And now it works with my custom keyboard layout !
Kralizek commentedon Jan 7, 2019
Is there a better solution now? I tried to use the artifact from the AppVeyor build but I get
lzybkr commentedon Jan 7, 2019
You could try this build from this PR.
It's not tested on Linux/Mac yet and I expect I've broken some things there, but I think it fixes all the issues on Windows.
LaurentDardenne commentedon Jan 12, 2019
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.
SteveL-MSFT commentedon Jan 15, 2019
Laurent Dardenne (@LaurentDardenne) that is a known issue and being addressed by #831
Kralizek commentedon Jan 15, 2019
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.
silverqx commentedon Mar 6, 2019
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
silverqx commentedon Mar 6, 2019
Ok, resolved at #860 (comment)