2015-09-10 67 views
1

我已經編譯了來自Amazon Linux實例的源單聲道運行時間。編譯後,'lib'和'bin'目錄總共320MB。我希望儘可能小。我可以從那裏刪除什麼(如果有的話)以儘可能節省空間。降低單聲道運行時間大小

+1

320MB?這個問題真的是關於Xamarin嗎? –

+0

Xamarin傢伙對單聲道有很多見解。所以他們可能會有一些提示。 – Brandon

回答

0

首先,我會從這裏開始:

How to make a smaller Mono install/Small Footprint

對於自己:

我不剝離的二進制文件或「重新連接」的組件,但我有一堆配置選項關閉,當然,4.x版本的單聲道您的里程可能會有所不同:

單聲道dir的OS-X/Linux磁盤使用量約爲174MB,其中GAC約爲60MB ~~/LIB /單/ GAC)。如果您沒有使用GAC來解析程序集,但是我沒有使用該程序,我只剩下大約110MB的全部4.5框架。有很多的框架項,我個人從來沒有使用,但我從來沒有發現它值得創建刪除列表中爲它試圖挽救另一個10-30MB的...

FYI:

我的「小「OS-X配置:

./autogen.sh \ 
    --with-tls=posix \ 
    --enable-nls=no \ 
    --with-mcs-docs=no \ 
    --with-profile2=no \ 
    --with-profile4=no \ 
    --with-profile4_5=yes \ 
    --with-moonlight=no \ 
    --host=i386-apple-darwin10 \ 
    --with-glib=embedded \ 
    --prefix=${PlayInstallPath} 

我的 '小' 的Linux配置:

./autogen.sh \ 
    --with-mcs-docs=no \ 
    --with-profile2=no \ 
    --with-profile4=no \ 
    --with-profile4_5=yes \ 
    --with-moonlight=no \ 
    --prefix=${PlayInstallPath} 

更新的評論:

我可以擺脫2.0目錄 - 我將永遠瞄準4.5 框架。我如何才能只使用4.5目錄並擺脫GAC的 ?我可以在那裏複製適當的dll嗎?

運行而不GAC:

如果你看看像Xamarin工作室/單聲道開發了一款應用,它使用的MSBuild來解決裝配位置,而不是GAC。 GAC並不是真正需要的,在新的MS .Net Core部署模型中,應用程序/服務/ Docker/etc等所需的.Net程序集只複製到同一個部署目錄中,版本控制問題不是問題,因爲您可以回滾目錄更改以恢復到之前的版本,或者只是指向不同目錄的sym鏈接以更改爲新版本,等等......如果您正在爲生產臨時/版本執行此操作,請與DevOps對話以協調誰/什麼/何時何地...

單聲道,你可以使用MONO_PATH跳過GAC,直接進入到lib目錄下,同時這也是不是最佳實踐,它工作在我們環境,我們在做什麼(你milage會根據應用類型)有所不同,但閱讀下面的鏈接單,瞭解的利弊,以及如何你應該這樣做:

http://www.mono-project.com/archived/best_practices/#monopath

和:

http://www.mono-project.com/docs/getting-started/application-deployment/

至於net_2_0目錄,我從來沒有得到一個,因爲我通過「--with-profile2 = no」在autogen/configure步驟關閉該配置文件。

+0

非常感謝您的信息。這是有幫助的。我可以擺脫2.0目錄 - 我將始終瞄準4.5框架。我如何才能只使用4.5目錄並擺脫GAC?我可以在那裏複製適當的dll嗎? – Brandon

+0

謝謝 - 這回答了一切! – Brandon