2016-03-03 57 views
12

當嘗試使用ComponentSerializationService反序列化,錯誤被填充的引用均未發現:SerializationStore沒有找到引用

public ICollection Deserialize(object serializationData) 
{ 
    var serializationStore = serializationData as SerializationStore; 
    var componentSerializationService = _serviceProvider.GetService(typeof(ComponentSerializationService)) as ComponentSerializationService; 
    var collection = componentSerializationService.Deserialize(serializationStore); 
} 

錯誤,如:

找不到類型「System.Drawing中。尺寸'。請確保引用了包含此類型的組件 。如果此類型是開發項目的 部分,請確保使用當前平臺的設置或任何 CPU成功構建項目 。

這裏我已經通過了一個Button控件並設置了size屬性。

+0

如果你至少提供了你正在做的事情的完整例子,那會很好。 – Evk

+0

序列化/反序列化是否在分離的項目中發生? – Damirchi

+0

是你的應用程序WPF還是WinForm? –

回答

1

我記得我有這個「無法找到類型System.Drawing.Size」的一段時間,我花了太多的時間修復它。我真的不記得最終修復它是什麼,我不認爲選擇Any CPU是一個問題。雖然它與你的環境並不完全相同,但我仍然認爲值得嘗試以下內容,因爲它可能是一個連接到解決方案中的幾個項目引用不同版本System.Drawing.dll的問題。

因此,請嘗試雙重檢查解決方案中使用的版本是否存在不一致(即使packages.config條目看起來不錯),並確保它們都引用相同的版本(例如.net461)。

就我而言,解決方案中的30多個庫中的一些竟然使用.net45;我使用了一個名爲Target Framework Migrator的工具來解決這個問題。你可以通過Tools => extensions和updates => Online => Visual Studio Gallery

然後在Search Field中鍵入Target Framework Migrator。

我確實記得,在我嘗試修復問題的過程中,我也將.Net升級到了4.6.1 ......也許您也可以試試這個......但是在任何情況下爲您自己的庫運行Target Framework Migrator (並在路上重新啓動VS 2015)絕對值得一試。

祝你好運!