2008-12-08 35 views
8

我正在開發一個項目,在Visual Studio 2008中,該DLL目前超過20 MB。有沒有一種方法來分析該DLL,搜索主要貢獻者這個大小?如何最小化ASP.NET C#項目DLL大小?

我懷疑在解決方案中的小型項目中打破它會有所幫助,但我正在尋找更快的解決方案(雖然不是更好,恐怕)。

作爲旁註,我們正在收到'意外錯誤寫入元數據'錯誤,我們認爲它與DLL大小有關。但是,重新啓動Visual Studio 2008時,該錯誤消失。直到它再次出現,經過幾次重建。磁盤空間不是問題。

回答

7

Yowser!你有沒有得到一些巨大的resx文件(或其他嵌入式內容),是嵌入在DLL中?也許將這些視爲外部內容?我首先看看項目樹中的文件...... 20Mb必須來自明顯的地方 - 大圖形等。

+0

+1,表示同意。即使是龐大龐大的Infragistics組件也只有2至3 MB的上衣。如果你沒有一些龐大的資源 - 圖像,聲音,某種大型二進制文件 - 讓你感到困惑,我會感到震驚。 – 2008-12-08 20:57:26

+0

糟糕。找到了。一堆報告(水晶報告)每個超過1億... – Seiti 2008-12-08 21:12:47

0

Microsoft.SharePoint.dll是9Mb。即使對於像SharePoint這樣的複雜產品,DLL也會分爲不同的項目。

如果您有一個大型項目,並且沒有任何資源來自我,我可以建議將您的項目分解爲不同的程序集?

我看到了確切的錯誤,但在VS2003環境中(微軟在support.microsoft.com上顯示)。但是,由於您在VS2008中,這可能也是由於磁盤空間問題。

您是否驗證過Visual Studio使用的所有磁盤都不滿/幾乎滿了?

2

PE Explorer會顯示您的內容。

This也可能有幫助嗎?

更新: Dependency Walker也可能在這裏幫助。您可以在「配置文件模式」中運行它,該模式通過執行您的應用程序並觀察它來查看它加載的內容。

0

糟糕! 發現一大堆(50+)使用Crystal Reports生成的大型報告模板,每個大約1MB。

我們所要做的只是將它們排除在項目之外。