猿问

如何使用.NET 4运行时运行PowerShell?

如何使用.NET 4运行时运行PowerShell?

我正在更新一个管理一些.NET程序集的PowerShell脚本。脚本是为基于.NET 2构建的程序集编写的(与PowerShell运行的框架版本相同),但现在需要使用.NET 4程序集和.NET 2程序集。

由于.NET 4支持运行针对框架的旧版本构建的应用程序,因此,当我需要在.NET 4程序集上运行PowerShell时,使用.NET 4运行时启动PowerShell似乎是最简单的解决方案。

如何使用.NET 4运行时运行PowerShell?


慕运维8079593
浏览 856回答 3
3回答

拉莫斯之舞

我找到的最好的解决方案就是在博客上发表文章。在PowerShell中使用更新版本的.NET..这允许powershell.exe与.NET 4程序集一起运行。只需修改(或创建)$pshome\powershell.exe.config因此,它包含以下内容:<?xml&nbsp;version="1.0"?>&nbsp;<configuration>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<startup&nbsp;useLegacyV2RuntimeActivationPolicy="true">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<supportedRuntime&nbsp;version="v4.0.30319"/>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<supportedRuntime&nbsp;version="v2.0.50727"/>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</startup>&nbsp;</configuration>附加的快速设置说明:位置和文件在某种程度上与平台有关;但是,它将为您提供如何使解决方案为您工作的内联要点。您可以通过执行以下操作找到PowerShell在计算机上的位置cd $pshome&nbsp;在Powershell窗口中(DOS提示不起作用)。路径将类似于(例如)C:\Windows\System32\WindowsPowerShell\v1.0\要在其中放置配置的文件名是:powershell.exe.config如果你PowerShell.exe正在执行中(如果需要,请创建配置文件)。如果PowerShellISE.Exe正在运行,则需要将其配套配置文件创建为PowerShellISE.Exe.config

皈依舞

请小心使用注册表项方法。这些是机器范围内的密钥,并且严格地将所有应用程序迁移到.net&nbsp;4.0.如果强行迁移,许多产品都无法工作,这是一种测试工具,而不是生产质量机制。VisualStudio 2008和2010MSBuild、TurboTax和许多网站,SharePoint等等,不应该是自动化的。如果您需要在4.0中使用PowerShell,这应该在每个应用程序的基础上使用一个配置文件,您应该与PowerShell团队就精确的建议进行检查。这可能会破坏一些现有的PowerShell命令。

小唯快跑啊

Powershell(引擎)在.NET 4.0下运行良好。Powershell(控制台主机和ISE)不要,仅仅是因为它们是针对旧版本的.NET编译的。在全系统范围内更改加载的.NET框架,从而允许PowerShell使用.NET 4.0类:reg&nbsp;add&nbsp;hklm\software\microsoft\.netframework&nbsp;/v&nbsp;OnlyUseLatestCLR&nbsp;/t&nbsp;REG_DWORD&nbsp;/d&nbsp;1reg&nbsp;add&nbsp;hklm\software\wow6432node\microsoft\.netframework&nbsp;/v&nbsp;OnlyUseLatestCLR&nbsp;/t&nbsp;REG_DWORD&nbsp;/d&nbsp;1要只更新ISE以使用.NET 4.0,可以将配置($psHome\Powershell_ise.exe.config)文件更改为具有如下所示的块:<?xml&nbsp;version="1.0"&nbsp;encoding="utf-8"?><configuration> &nbsp;&nbsp;&nbsp;&nbsp;<startup> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<supportedRuntime&nbsp;version="v4.0.30319"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;</startup></configuration>您可以构建使用PowerShell API(System.Management.Automation.PowerShell)调用PowerShell的.NET 4.0应用程序,但这些步骤将有助于使内置PowerShell主机在.NET 4.0下工作。当您不再需要注册表项时,请删除它们。这些是机器范围的密钥,强制将所有应用程序迁移到.NET 4.0,甚至使用.NET 2和.NET 3.5的应用程序。
随时随地看视频慕课网APP
我要回答