【问题标题】:Upgrade of normal project to Xamarin.Forms project普通项目升级到 Xamarin.Forms 项目
【发布时间】:2015-07-29 12:34:23
【问题描述】:

我有一个运行良好的 Xamarin 项目,但它是前段时间构建的。现在我的要求是将此项目升级为 Xamarin.Forms 项目。所以我安装了 Form nuget 包。然后我尝试构建项目。发生的情况是所有项目中的所有 api 级别设置都消失了。所以我增加了 api 级别 => min api lavel 19 并用最新的编译 api 级别。

毕竟我得到了这个错误:

加载程序集时出现错误 141 异常:System.IO.FileNotFoundException:无法加载程序集“Mono.Android.Support.v4,版本=0.0.0.0,文化=中性,PublicKeyToken=84e04ff9cfb79065”。也许它在 Mono for Android 配置文件中不存在? 文件名:'Mono.Android.Support.v4.dll' 在 Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve(AssemblyNameReference 参考,ReaderParameters 参数) 在 Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1 程序集,AssemblyDefinition 程序集,布尔顶级) 在 Xamarin.Android.Tasks.ResolveAssemblies.Execute()

我尝试从 nuget 安装 Xamarin.android.supprt.v4.dll,但没有任何区别。

我正在使用 Visual Studio 2013,并且我还更新了我的 Xamarin for Windows。

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    我只能猜测,因为我看不到你的项目文件。

    这看起来像是 PCL 问题。 Xamarin.Forms 项目可以是“共享”或“PCL”风格。 “共享”项目可以访问与您的 iOS 或 Android 项目相同的 API。 “PCL”风格只能访问 API 的子集,并使事情变得更复杂 - PCL 的子风格。

    如果您要将现有项目迁移到 XF,我会说使用“共享”风格可能会更好。如果您刚开始或觉得重构不会太多 - 使用 PCL。

    看起来您有一个 PCL XF 项目并复制了尝试使用 System.IO.File 的代码 - 几个缺少的 API 之一 - 您必须将此 API 使用重构为 dependency service 或使用一些 @ 987654322@访问它。

    简而言之,您将创建一个接口,提供您需要的文件功能(保存、加载、删除...),在您各自的 iOS/Android/Win 项目中实现该接口,甚至更好 - 共享项目 - 以及使用 IoC 实例化 XF 项目中的接口。例如,看看如何使用来自XLabsMediaService

    【讨论】:

      猜你喜欢
      • 2019-06-10
      • 2016-03-11
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多