背景的一點:最近,我從它的源代碼(https://github.com/ServiceStack/ServiceStack)重新編譯ServiceStack庫。在完成一些錯誤修正後,我還重新編譯了ServiceStack.Text項目。我將ServiceStack.Text dll文件複製到ServiceStack項目的「lib」文件夾中(因爲ServiceStack解決方案不包含文本中的序列化程序,所以它在那裏)。ServiceStack TypeLoadException - 未知產地
現在我正在TypeLoadExceptions,如下所示:
System.TypeLoadException:方法在類型 'ServiceStack.ServiceInterface.Testing.MockHttpResponse' 'get_StatusCode' 從組件 「ServiceStack.ServiceInterface,版本= 1.0 .0.0,Culture = neutral, PublicKeyToken = null'沒有實現。在 System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly 組裝,ObjectHandleOnStack retTypes)在 System.Reflection.RuntimeAssembly.GetExportedTypes()----在我的代碼 從這裏...----
我不確定問題可能是什麼。我懷疑它可能是一個循環的DLL引用問題(DLL地獄),因爲ServiceStack.OrmLite被引用(這也引用回該項目中的其他解決方案);但是,刪除所有對ServiceStack項目的引用後,我仍然沒有解決問題。
這篇文章似乎有一些想法,但我還沒有與下面通過任何運氣:TypeLoadException says 'no implementation', but it is implemented
如何在構建它們時防止此問題?我不想構建_every_項目並複製_every_ dll,我只想要那些我使用的... – theMayer 2013-03-14 20:50:03
如果你想從源代碼構建,你需要確保依賴組件被正確傳播。如果克隆下'C回購:\ src'您可以使用每個主要解決方案的'/ build'文件夾內的build.bat腳本會自動創建一個副本釋放的dll到正確的目錄,例如在ServiceStack/lib中。 – mythz 2013-03-14 20:59:20
這似乎不能解決問題。我刪除了所有的ServiceStack.OrmLite引用(和DLL的/ lib文件夾),並通過包括ServiceStack.Text項目(因此所有的引用是在VisualStudio中被編譯)重修的解決方案。我使用Git Cleanup清除了所有bin和obj文件夾。我還清除了所有Visual Studio緩存。如果有骯髒的DLL,我不知道它們來自哪裏。 – theMayer 2013-03-14 23:01:17