Windows

Windows 如何處理程序依賴關係?

  • May 4, 2017

我使用 Linux 已經有一段時間了,我一直想知道 Windows 是如何處理apt-getaptitudePacmanyum和其他包管理器能夠處理的程序依賴關係的。有時,我的包管理器會告訴我這個包需要這個版本的庫,或者會有一些衝突。

Windows 如何處理所有這些東西?

它沒有。除非我們談論的是.NET,它要求您根據編譯器安裝框架版本 X。

其他一切只會引發錯誤。運氣好的話,你會得到missing dll xxxx.dll. 雖然,大多數安裝程序都會包含執行軟體所需的庫。

編輯 4/4/2014:嘿 OP,看看今天剛剛發布的內容:

http://blogs.technet.com/b/windowsserver/archive/2014/04/03/windows-management-framework-v5-preview.aspx


我只是想對已接受的答案進行一些擴展,因為它在細節上有點稀疏。Filipe 的回答沒有提及 Windows 實際用於解決或緩解程序依賴問題的策略,例如組件儲存 (WinSxS)、全域程序集記憶體、MSI 系統等。但另一方面,他基本上是正確的感覺開發人員有責任在應用程序中包含任何自定義庫,並在送出安裝事務之前檢查依賴項的存在。

Windows 的模組化程度低於 Linux,後者有好有壞。不利的一面是,Windows 更加單一,這意味著作業系統的可移動或可選組件相對較少,就像在 Linux 中一樣。(儘管 Windows 在這方面正在慢慢變得更好。)

但從好的方面來說,這意味著開發人員能夠對使用者已經在他或她的機器上存在的庫做出更多假設。並且這些庫的各種版本,一旦安裝,將並排儲存在組件儲存中,這樣您就不再有 App1 大喊需要 crapDLL.dll 和 App2 同時大喊需要不同版本的 crapDLL.dll時間等

引用自:https://serverfault.com/questions/584012