将正常项目升级到Xamarin.Forms项目

时间:2015-05-18 05:44:03

标签: xamarin xamarin.forms

我有一个运行良好的xamarin项目,但它是在不久前构建的。现在我的要求是将此项目升级到Xamarin.Forms项目。所以安装了表单nuget包。然后我尝试构建项目。所有项目的所有api级别设置都会发生。 所以我增加了api等级=> min api lavel 19并用最新版本编译api级别。

毕竟我得到了这个错误=>

错误141加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集“Mono.Android.Support.v4,Version = 0.0.0.0,Culture = neutral,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程序集,布尔topLevel) 在Xamarin.Android.Tasks.ResolveAssemblies.Execute()

我试过从nuget安装Xamarin.android.supprt.v4.dll但没有帮助。

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

请帮助我,这是在杀我。

1 个答案:

答案 0 :(得分:0)

我只能猜测,因为我无法看到您的项目文件。

这看起来像PCL问题。 Xamarin.Forms项目可以是"共享"或者" PCL"味道。 "分享" project可以访问与iOS或Android项目相同的API。 " PCL"风味只能访问API的一个子集,并使事情变得更复杂 - 有PCL的子风格。

如果您要将现有项目迁移到XF,我会说您可能会更好地使用"共享"味道。如果你开始新的或认为重构不会太多 - 使用PCL。

看起来你有一个PCL XF项目并且复制了试图使用System.IO.File的代码 - 几个缺少API之一 - 并且你必须将这个API用法重构为dependency service或者使用一些IoC来访问它。

简而言之,您将创建一个界面,提供您需要的文件功能(保存,加载,删除...),在您各自的iOS / Android / Win项目中实现该界面,甚至更好 - 共享项目 - 并使用IoC在XF项目中实例化接口。有关示例,请参阅MediaService中使用XLabs的方式