2016-04-06 5 views
0

У меня есть собственный код, который я пытаюсь скомпилировать в проекте xamarin, используя студию Xamarin для mac. Один из классов использует System.Xml.XmlTextWriter.XmlTextWriter в xamarin для android и iOS

Я получаю следующее сообщение об ошибке:

Error CS0012: The type `System.Xml.XmlTextWriter' is defined in an assembly 
that is not referenced. Consider adding a reference to assembly `System.Xml, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 

Во-первых, я добавил ссылку на System.Xml в моем проекте. Это общая библиотека (не переносная), поэтому ссылка находится в проекте дроида, а не на самом проекте библиотеки.

Я знаю, что есть проблемы с некоторыми частями System.Xml в Xamarin (см. [1], [2]), но они, похоже, вращаются вокруг XmlDocument. Кроме того, the xamarin documentation specifically has XmlTextWriter in it (предположим, что эта документация предназначена для библиотек xamarin, а не для окон, на которых они основаны).

Эта документация, а также приведенная выше ошибка упоминает, что мне нужна версия 2.0.0.0, where as the Reference available to me is 2.0.5.0. Я не уверен, если это имеет значение.

У кого-нибудь есть идеи?

u_u

ответ

1

Вы пытались добавить привязка перенаправления в вашем проекте?

Добавить файл под названием app.config с содержимым:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Xml" publicKeyToken="b77a5c561934e089" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-2.0.5.0" newVersion="2.0.5.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 
+0

Thats cool! Я добавил файл, но он не работает. Я проверил свойства сборки, а его действие сборки - нет, какое действие следует использовать? Любая другая причина, котор он не работал? –

+0

А я вижу, что это может быть проблема с использованием этого app.config в xamarin. Это файл assemblyinfo.cs, который я могу использовать, поэтому я смотрю на это сейчас –

+0

, что было nogud. Но я нашел эту ссылку: https://forums.xamarin.com/discussion/11837/cross-platform-assembly-nightmare-can-somebody-please-help, которая говорит о подобной проблеме. с другой dll. Заглядывая в него ... Некоторые люди говорят, что они всегда добавляют перенаправления, другие говорят, что их нужно обрабатывать автоматически. Интересно, это красная сельдь? –

1

кажется, что библиотека скомпилирована с .NET 2.0/3.5, и ожидает создания/запуска в этой среде. 2.0.5.0 - мобильная цель Xamarin, и я не совсем уверен, что bindingRedirect предназначен для работы таким образом. Можете ли вы проверить, что собственная лития нацелена на мобильный? Кроме того, проверьте его «platformness», и если все будет выглядеть хорошо, вы можете отредактировать сборку, чтобы перенаправить ее.

+0

Спасибо за ссылку на платформу, я попробую. Я также собираюсь сделать фиктивный проект с кодом и посмотреть, будет ли он компилироваться. –