Có ai biết tại sao Powershell 2.0 được cài đặt trong C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 trên một hộp Windows 7?Tại sao Powershell 2.0 được cài đặt ở cùng vị trí như Powershell 1.0?
Trả lời
Đây thực sự là một câu chuyện thú vị về tác dụng phụ.
Visual Studio có danh sách các hội đồng cố định trong hộp thoại "Thêm tham chiếu" của họ.
Mọi thứ khác phải được duyệt. Nhà phát triển có xu hướng duyệt tìm vị trí này trong thư mục Windows, nơi System.Management.Automation.dll (lắp ráp chạy hầu hết các cuộc sống PowerShell) Điều này đã thực hiện một tham chiếu tuyệt đối cho vị trí này. Vì sẽ không có tùy chọn cài đặt song song với PowerShell (như có .NET framework), sự lựa chọn tốt nhất có sẵn là cho phép mọi người tiếp tục tham chiếu cùng một assembly, cả theo đường dẫn và bởi StrongName, như họ đã làm trước đây.
Nếu câu chuyện này không tồn tại theo cách này, tất cả các ứng dụng được viết trên đầu PowerShell V1 sẽ phải được phát hành lại cho V2.
Tôi nghĩ rằng vì PowerShell 2.0 cực kỳ tương thích với 1.0, không cần phải có hai phiên bản khác nhau trên cùng một máy. Vì vậy, họ đặt 2.0 trên đầu trang 1.0 trên các hệ thống XP và Vista và rất có thể đã quyết định giữ cùng một thư mục cho Windows 7. Đây cũng là lý do tương tự mà phần mở rộng vẫn là .ps1 (và .psm1, .psd1).
Bạn có thể yêu cầu tương tự cho Windows 7 x64. Tại sao hệ thống 64 bit dll trong một thư mục được gọi là System32 và tại sao những tên dlls 64 bit đó lại kết thúc bằng "32", ví dụ: user32.dll, kernel32.dll, vv :-)
Không có gì để làm với "khả năng tương thích cực", nhưng khả năng tương thích ngược. – manojlds
Tôi chỉ nghĩ rằng, ngay từ đầu, nhóm Microsoft có kế hoạch triển khai các phiên bản PowerShell cạnh nhau, giống như nó được thực hiện cho các phiên bản Framework .NET. Nhưng với thời gian họ quyết định chỉ hỗ trợ một PowerShell vào thời điểm đó.
Có điều gì đó kỳ lạ hơn khi bạn sử dụng tham số -version của dòng lệnh để chọn phiên bản 1.0 var $PSVersionTable
có mặt với PSVersion có giá trị là 2.0. $ PSVersionTable là không có mặt trong PowerShell 1,0
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>powershell -version 1.0
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. Tous droits réservés.
PS C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC> cd \
PS C:\> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.4952
BuildVersion 6.1.7600.16385
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
Nếu bạn có một cái nhìn vào var $host
mà tồn tại trên cả hai phiên bản
PowerShell V2.0 (VI phiên bản 1.0 hoặc 2,0)
PS > $host
Name : ConsoleHost
Version : 2.0
InstanceId : b6ae2582-c1f4-422a-b057-16458b387f7d
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : fr-FR
CurrentUICulture : fr-FR
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PowerShell V1.0
PS > $Host
Name : ConsoleHost
Version : 1.0.0.0
InstanceId : b55940f2-b3b2-4f99-b895-98aac4752369
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : fr-FR
CurrentUICulture : fr-FR
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
Ý kiến của tôi là PowerShell V2.0 có thể chạy hầu như tất cả các tập lệnh PowerShell V1.0. Microsoft thêm một số vars và bạn có thể gặp rắc rối nếu bạn có những vars hiện diện trong kịch bản của bạn nhưng đó là đậu phộng.
JP
Trong Windows 8, nó vẫn còn trong C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe và $ PSVersionTable cho thấy một PSVersion của 3.0. – benjguin
- 1. Cài đặt bảo mật nào ngăn chặn Remote PowerShell 2.0 truy cập đường dẫn UNC
- 2. Không thể cài đặt Powershell Snap-in
- 3. Powershell ở chế độ NonInteractive
- 4. Bundler cài đặt đá quý ở vị trí sai
- 5. Cách cài đặt và cấu hình PowerShell?
- 6. Windows PowerShell đặt hồ sơ $ ở đâu?
- 7. Làm cách nào để thay đổi vị trí lắp đặt mô-đun Powershell?
- 8. Thông số động Powershell v2.0 có thể ở vị trí 0 không?
- 9. PowerShell dòng 2.0 lệnh chuyển hướng
- 10. Mô-đun Powershell NetSecurity ở đâu?
- 11. Windows Forms trông khác nhau trong Powershell và Powershell ISE. Tại sao?
- 12. Đọc đối tượng Json trong Powershell 2.0
- 13. Tạo PSObject tùy chỉnh PowerShell 2.0
- 14. C# Cài đặt vị trí tệp xml
- 15. Một PowerShell dựa trên PowerShell?
- 16. Làm cách nào để có được vị trí hệ thống tệp của tập lệnh PowerShell?
- 17. 'setup.py test' vị trí cài đặt trứng?
- 18. Thư mục v2.0 và v3.0 ở đâu trong PowerShell?
- 19. giá trị Powershell thêm cùng
- 20. PowerShell cmdlet như Visual Studio Tool External
- 21. Cài đặt IIS7 Vị trí tệp
- 22. Đặt lại phiên trong PowerShell
- 23. Viết chuỗi tại cùng một vị trí bằng cách sử dụng Console.Write trong C# 2.0
- 24. Tại sao Assert.AreEqual (1.0, double.NaN, 1.0) vượt qua?
- 25. Powershell gọi Powershell script
- 26. Cài đặt nUnit với ASP.Net MVC 1.0
- 27. Tại sao máy phát điện Yeoman của tôi lại được lắp đặt sai vị trí?
- 28. Tại sao DockPanel.Dock = "Bottom" đặt phần tử ở trên cùng?
- 29. PowerShell: đọc nhật ký Bản ghi PowerShell
- 30. Cách đặt TimeZone bằng Powershell
Powershell v3 trong Windows 8 (xem trước) ở cùng một vị trí ... – manojlds