在MonoTouch应用程序中使用HtmlAgilityPack会产生参考错误

时间:2012-08-18 11:39:12

标签: xamarin.ios html-agility-pack

我正在尝试将Html Agility Pack与MonoTouch应用程序一起使用,但找不到适合它的版本。

我从CodePlex下载了最新的二进制文件,我尝试使用它包含的每个DLL进行构建。当目标是iPhone时,无编译。

添加.NET 20库将允许它编译到iPhone模拟器,但是当切换到iPhone时,我收到错误:

Error MT2002: Can not resolve reference: System.Diagnostics.TraceListener (MT2002) (MFLPlatinum12)

似乎其他人正在使用HtmlAgilityPack和MonoTouch项目,所以对我缺少的东西有任何想法?

2 个答案:

答案 0 :(得分:2)

您是从源代码编译还是直接使用DLL?

您需要制作一个新的MonoTouch库项目并添加所有文件才能工作。

直接使用DLL可能不起作用,因为它没有为MonoTouch编译。

答案 1 :(得分:1)

你必须从代码中编译它 下载源

进入

\htmlagilitypack-99964\Branches\1.4.0\HtmlAgilityPack

修改csproj更改为

<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />

保存并加载

修复错误

追踪 - &gt;调试

删除块

 if (!SecurityManager.IsGranted(new DnsPermission(PermissionState.Unrestricted)))
        {
            //do something.... not at full trust
            try
            {
                RegistryKey reg = Registry.ClassesRoot;
                reg = reg.OpenSubKey(extension, false);
                if (reg != null) contentType = (string)reg.GetValue("", def);
            }
            catch (Exception)
            {
                contentType = def;
            }
        }

删除块

 if (SecurityManager.IsGranted(new RegistryPermission(PermissionState.Unrestricted)))
        {
            try
            {
                RegistryKey reg = Registry.ClassesRoot;
                reg = reg.OpenSubKey(@"MIME\Database\Content Type\" + contentType, false);
                if (reg != null) ext = (string)reg.GetValue("Extension", def);
            }
            catch (Exception)
            {
                ext = def;
            }
        }

使用dll文件夹

中的bin/debug