Dot-Net

如果文件用作引用程序集,是否有理由創建 .net DLL 而不是 EXE?

  • August 26, 2011

我注意到我不僅可以添加對 DLL 的引用,還可以在 Visual Studio 中添加對 EXE 的引用,並且可以像訪問 DLL 一樣訪問 EXE 中的所有類。

是否有任何理由創建 DLL 或者我也可以參考 EXE?

我之所以問是因為我經常編寫在 Windows 和 Mac OS 下執行的 .net 程序,而我通常的解決方案是創建一個具有該功能的 DLL,然後創建兩個 GUI,每個目標一個。

但是,現在在我看來,我好像可以只編寫我的應用程序的 Windows 版本,然後將該 Windows 版本(EXE 文件)添加到我的 Mac 項目並引用 Windows EXE 而不是 DLL。它還有一個額外的優勢,即我可以從 Mac 文件夾執行 Windows 版本,而無需添加其他文件。

有什麼好的理由不這樣做嗎?

如果您願意,您可以將所有程序集建構為執行檔 (.exe) 並引用它們。如果程序集被編譯為執行檔 (.exe) 或類庫 (.dll),則 .NET 沒有區別。

唯一的區別是執行檔具有額外的可移植執行檔 (PE)格式和標頭,因此它們可以在 Windows 系統上執行。此標頭主要用於啟動 CLR 執行時。

注意:您還可以將 .dll 程序集建構為可移植類庫

這取決於您最終會對應用程序進行多少維護/更新。我喜歡原始模型的簡潔性,其中 UI 基於平台分離,並且 DLL 包含共享的類。我會發現它對維護/重構來說不那麼令人困惑。

引用自:https://stackoverflow.com/questions/7174454