0

我们有使用 Mvvmcross 的跨平台项目(WPF 和 ios)。

我们想在 HttpWebRequest 中使用凭据,但我们使用 PCL 库。所以我们创建了 mvvmcross 插件来使用 System.Net.CredentialCache.DefaultNetworkCredentials。

我们的插件接口返回存在于 WPF 和 Xamarin 中的 System.Net.ICredentials。

在 WPF 应用程序中它工作得很好,但 ios 插件无法编译。

Le type 'System.Net.ICredentials' est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'.

我们尝试使用来自 mvvmcross 的 System.Net.Touch,但我们遇到了同样的错误。

我们提取了 Profile104 的 System.Net.dll 的公钥,并为自定义 dll 提供了 2.0.5.0 版本。我们在 csproj 中添加这一行:

<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Signing\system_net.snk</AssemblyOriginatorKeyFile>
<DelaySign>true</DelaySign>

但它不起作用。

有想法吗?

谢谢,

4

1 回答 1

1

对此有几种可能的解决方案。

我能想到的两个最简单的解决方案是:

  1. 在 OSX 下构建插件 dll 的版本并在部署到 iOS 时使用该版本。

  2. 切换到新的 Xamarin alpha 版本并尝试让代码在那里工作。这些新版本具有官方 PCL 支持并包括官方支持 - 包括来自 Xamarin 和 Microsoft 的官方 shim 程序

就个人而言,我会专注于第二个选项 - 因为无论如何我们都需要尽快这样做!

于 2013-07-04T19:19:14.217 回答