0

我有一些专有代码,我试图在使用 Xamarin studio for mac 的 xamarin 项目中编译。其中一个类使用 System.Xml.XmlTextWriter。

我收到以下错误:

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 的引用。这是一个共享库(不是可移植库),因此引用位于 droid 项目中,而不是库项目本身。

我知道 Xamarin 中 System.Xml 的某些部分存在问题(请参阅[1][2]),但它们似乎围绕 XmlDocument 展开。此外,xamarin 文档中专门包含 XmlTextWriter(假设此文档适用于 xamarin 库,而不是它们所基于的 windows 库)。

该文档以及上面的错误提到我需要版本 2.0.0.0其中我可用的参考是 2.0.5.0。我不确定这是否重要。

有人有想法么?

u_u

4

2 回答 2

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>
于 2016-04-06T10:59:33.073 回答
1

该库似乎是针对 .NET 2.0/3.5 编译的,并希望在该环境中构建/运行。2.0.5.0 是 Xamarin 的移动目标,我不完全确定 bindingRedirect 是否意味着以这种方式工作。您能否验证专有库是否针对移动设备?或者,检查它的“平台性”,如果一切看起来都不错,您可以编辑程序集以重新定位它。

于 2016-04-06T13:31:09.200 回答