[英]How do I Create a RunspaceConnectionInfo object for PowerShell?
[英]How do I Change Object Type Assembly in PowerShell
我遇到一個問題,即應該何時在System.Windows.Forms.ComboBox
對象上不觸發SelectedIndexChanged
事件,而僅在我的計算機上 。 它可以在其他人的計算機上正常工作。
當我在該對象上運行GetType().assembly
時,我的計算機顯示.Net 4.0,而其他人則顯示2.0。
如何將對象強制為2.0?
這是relevent程序集導入:
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
PowerShell會自動從運行PowerShell的.Net版本加載程序集。因此,指向v2.0程序集可能仍會強制其加載v4.0程序集。
自從加載v4.0程序集以來,您可能未使用PS1,而是使用PS3或4,那么簡單的解決方案是使用以下命令以2.0模式運行PowerShell:
powershell.exe -version 2
您確定使用的是PowerShell v1嗎? 那應該是CLR v2,並且不加載.Net 4.0程序集。 您的代碼應加載2.0程序集。 如果不是這種情況,則將您的powershell v1 配置為加載CLR v4 。 那或您正在使用PowerShell v3或更高版本。
嘗試$ PSVersionTable並查看其內容。
如果讀取PSVersion 1或2,則撤消對PowerShell的更改,使其使用CLR v4。 如果它讀取較高的版本,則沒有辦法。 .Net框架程序集將始終加載4.0版本。
無論如何,我都不希望它解釋您的事件未觸發。
更新資料
如Graimer所述 ,但是您可能會以較舊的版本(包括較舊的CLR版本)加載較新的PowerShell版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.