- PowerShell CTP替换PowerShell V1.0. 他们不能一起使用。
- 想要安装PowerShell CTP版,首先你要关闭和卸载CTP版之前的任何一个Windows PowerShell版本。(关于如何完成此操作的信息位于发行说明中).
- 这主要是因为强命名绑定。如果我们支持一起使用它们的话,因为cmdlet都绑定到PowerShell V1上,因此它们都不能使用.
- 在这方面上,我们使用了.NET本身类似的手法。ORCAS is a replacement for .NET 2.0/3.0 not a side-by-side install. 这意味着兼容性上我们必须小心谨慎,使得所有的东西能够继续工作。
- PowerShell CTP兼容PowerShell V1.0. 你编写的V1.0 cmdlet、提供程序和脚本将会不做任何修改直接在CTP版上运行。
我们通常运行多余100万个测试用例, 时常添加一些新的用例,并且经常进行self-host(名词解释:http://msdn2.microsoft.com/en-us/library/ms750530.aspx)。当然这并不意味着CTP与V1.0完全兼容,但是意味着至少这100万个用例是兼容的。过去,我们进行了重大的修改,并保持一切依然能够工作(在我们确定所有的测试都能正常通过后)。
- PowerShell脚本名称继续使用".PS1".
- 一旦CLR或者.NET框架发生重大变化,引起我们必须同时支持新旧版本,否则我们将一直延续此方法。这种时候,我们将会使其从.PS1变化为.PS2。即使发生了这样的变化,我们仍然保留.PS1,并且任何现在都能运行的脚本,在新的版本中依然能够正常运行。
- 你可能会编写一个.PS1脚本时,使用了一些只有在V2中存在的cmdlet或特性。如果你将此脚本给某人使用,此人正好使用PS V1,它可能在任何适合,以任何方式无法被执行。如果它适用了新语法,那么它将会在分析阶段执行失败(分析器错误)但是,如果它适用了新的命令行开关 – 当PS试图运行此命令时,脚本执行失败。这就是#REQUIRES的全部事情。你需要在你的脚本中写入
#REQUIRES -Version 2
我们将会检查版本号,并产生一个准确的错误信息 - 如果你的脚本中包含#REQUIRES –VERSION 1,你将发现它依然能在PowerShell (V2) CTP版上运行,因为它与V1完全兼容。
Windows Management Partner Architect
Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell
Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
444



被折叠的 条评论
为什么被折叠?



