2012-05-31 57 views
10

當我的項目生成時,Visual Studio中的生成序列化程序集選項創建MyAssembly.XmlSerializers.dll。這個問題(https://stackoverflow.com/questions/934411/what-is-myassembly-xmlserializers-dll-generated-for)表明它首先出現的原因,其中一些答案提供了一些方法來關閉它,但我的問題是爲什麼你會選擇關閉它?在某些情況下啓用它會導致問題(如果有的話,這些情況是什麼)?關閉Generate Serialization Assemblies的好處是什麼?

+1

呃,你的項目會建得更快。它當然不會跑得更快。 –

+1

@HansPassant - 澄清「不會跑得更快」 - 序列化程序集正在構建時,應用程序觸及它們 - 所以它會影響啓動時間,而不是整體性能。 –

回答

5

只有你可能面臨的問題是使用構建工具 - 比如msbuild,因爲如果你使用x32 SDK中的sgen來顯式構建x64,它會引發構建時錯誤(你可以通過設置正確改爲MSBuild或目標MSIL的SGenToolPath路徑)。恕我直言,最好是處理構建時間問題,並有更快的啓動時間。

1

關閉它停止了我的應用程序升級到v4.0後的構建和運行時錯誤。嘗試了許多在線發佈的解決方案後,我收到了SGEN錯誤。這樣做解決了這個問題。

2

當我需要簽署「ClickOnce」應用程序時,我不得不關閉它。我無法在生成序列化程序集上成功部署它。 MyAssembly.XmlSerializers.dll在清單文件中有引用,但它不是部署包的一部分。