Дизайнер Winforms не может найти проект сборки? - PullRequest
1 голос
/ 20 сентября 2010

У меня есть выигрыш формирует Usercontrol, который внезапно не может быть собран, с этой ошибкой:

Edit - забыл упомянуть, название проекта Datatesting, это не внешняя ссылка!

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   

Эта форма уже давно работает нормально, и я понятия не имею, почему она вдруг сломалась или как исправить эту проблему.

Кто-нибудь еще видел это раньше и, возможно, знает, как решить эту проблему?

1 Ответ

3 голосов
/ 20 сентября 2010

Вам удалось как-то создать круговую ссылку на проект. Значение ресурса выглядит примерно так при преобразовании из 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.

Понятия не имею, что на самом деле означает ресурс или как вы попали в ресурс. Но вам нужно будет закрутить любой тип, хранящийся здесь, в другую сборку, чтобы он мог быть собран отдельно. Восстановление после этой ошибки, за исключением восстановления более ранней версии из SCCS, может быть возможно путем ручного редактирования файла .resx и удаления ресурса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...