2010-09-20 32 views
1

我有一個勝利形式Usercontrol突然無法建立,與此錯誤:Winforms設計器無法找到項目組件?

編輯 - 忘記提及,該項目的名稱是Datatsing,它不是一個外部參考!

Error 1 Invalid Resx file. Could not load type DataTesting.TableColumn, DataTesting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null which is used in the .RESX file. Ensure that the necessary references have been added to your project. Line 129, position 5. C:\Team Explorer\DataTesting\TableColumnListEditor.resx 129 5 DataTesting 

導航到錯誤打開TableColumnListEditor.resx的這一部分:

<data name="tableColumnEditor1.EditingTableColumn" mimetype="application/x-microsoft.net.object.binary.base64"> 
    <value> 
     AAEAAAD/////AQAAAAAAAAAMAgAAAEJEYXRhVGVzdGluZywgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJl 
     PW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwFAQAAABdEYXRhVGVzdGluZy5UYWJsZUNvbHVtbgYA 
     AAAVPE5hbWU+a19fQmFja2luZ0ZpZWxkGDxTcWxUeXBlPmtfX0JhY2tpbmdGaWVsZBs8RmlsbE1ldGhv 
     ZD5rX19CYWNraW5nRmllbGQaPFByZWNpc2lvbj5rX19CYWNraW5nRmllbGQbPElzSWRlbnRpdHk+a19f 
     QmFja2luZ0ZpZWxkGzxJc051bGxhYmxlPmtfX0JhY2tpbmdGaWVsZAEBAQAAAAUBAQIAAAAGAwAAAAAG 
     BAAAAAAGBQAAAAABMAAACw== 
    </value> 
    </data> 

最後,當我嘗試打開設計的控制,我得到這個錯誤:

To prevent possible data loss before loading the designer, the following errors must be resolved: 



    1 Error 

    Ignore and Continue 
    Why am I seeing this page? 

    Unable to find assembly 'DataTesting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.  

Instances of this error (1) 

1. Show Call Stack 

at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly() 
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name) 
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable) 
at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable) 
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record) 
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum) 
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() 
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) 
at System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver) 
at System.Resources.ResXDataNode.GetValue(ITypeResolutionService typeResolver) 
at System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader reader, Boolean isMetaData) 
at System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader) 

Help with this error 

MSDN Help 


Forum posts about this error 

Search the MSDN Forums for posts related to this error 

這種形式一直工作得很好,我不知道爲什麼它突然中斷,或者如何糾正這個問題。

有沒有其他人看過這個之前,也許知道如何解決這個問題?

回答

3

您設法以某種方式創建循環項目引用。資源價值看起來大致是這樣的,從的base64轉換爲字節時:

00000000: 00 01 00 00 00 FF FF FF │ FF 01 00 00 00 00 00 00       
00000010: 00 0C 02 00 00 00 42 44 │ 61 74 61 54 65 73 74 69  BDataTesti 
00000020: 6E 67 2C 20 56 65 72 73 │ 69 6F 6E 3D 31 2E 30 2E ng, Version=1.0. 
00000030: 30 2E 30 2C 20 43 75 6C │ 74 75 72 65 3D 6E 65 75 0.0, Culture=neu 
00000040: 74 72 61 6C 2C 20 50 75 │ 62 6C 69 63 4B 65 79 54 tral, PublicKeyT 
00000050: 6F 6B 65 6E 3D 6E 75 6C │ 6C 05 01 00 00 00 17 44 oken=null D 
00000060: 61 74 61 54 65 73 74 69 │ 6E 67 2E 54 61 62 6C 65 ataTesting.Table 
00000070: 43 6F 6C 75 6D 6E 06 00 │ 00 00 15 3C 4E 61 6D 65 Column <Name 
00000080: 3E 6B 5F 5F 42 61 63 6B │ 69 6E 67 46 69 65 6C 64 >k__BackingField 
00000090: 18 3C 53 71 6C 54 79 70 │ 65 3E 6B 5F 5F 42 61 63 <SqlType>k__Bac 
000000A0: 6B 69 6E 67 46 69 65 6C │ 64 1B 3C 46 69 6C 6C 4D kingField<FillM 
000000B0: 65 74 68 6F 64 3E 6B 5F │ 5F 42 61 63 6B 69 6E 67 ethod>k__Backing 
000000C0: 46 69 65 6C 64 1A 3C 50 │ 72 65 63 69 73 69 6F 6E Field<Precision 
000000D0: 3E 6B 5F 5F 42 61 63 6B │ 69 6E 67 46 69 65 6C 64 >k__BackingField 
000000E0: 1B 3C 49 73 49 64 65 6E │ 74 69 74 79 3E 6B 5F 5F <IsIdentity>k__ 
000000F0: 42 61 63 6B 69 6E 67 46 │ 69 65 6C 64 1B 3C 49 73 BackingField<Is 
00000100: 4E 75 6C 6C 61 62 6C 65 │ 3E 6B 5F 5F 42 61 63 6B Nullable>k__Back 
00000110: 69 6E 67 46 69 65 6C 64 │ 01 01 01 00 00 00 05 01 ingField 
00000120: 01 02 00 00 00 06 03 00 │ 00 00 00 06 04 00 00 00   
00000130: 00 06 05 00 00 00 00 01 │ 30 00 00 0B     0 

這是通過BinaryFormatter的生成的數據,請注意,它引用的DataTesting組件,您嘗試編譯的程序集。由於DataTesting.dll將在您編輯項目時存在,因此確實可能會一段時間未檢測到。直到你做一個乾淨的生成並且DLL不再可用。 KABOOM。

不知道資源實際上意味着什麼,或者你是如何將它放入資源中的。但是,您需要將存儲在此處的任何類型旋轉到另一個程序集,以便它可以單獨構建。通過手工編輯.resx文件並刪除資源,從此錯誤恢復,從恢復SCCS的早期版本起,可能是可能的。

+1

雖然我很想知道我到底做了什麼錯誤,但是將引用類型移動到單獨的庫項目中,並且包含對它的引用,直接清除了這些內容。謝謝。 – asawyer 2010-09-20 14:46:57