2017-08-31 66 views
0

我需要实现一些功能,但是,它们似乎并不可行,而且我没有太多的实施时间。是否有可能避免ADAM在Xamarin中使用?

我有一个解决办法PCL (.NET 4.5,外形= 111)和因为某些原因(我不从现在开始明白小时),我不能安装以下软件包:

  • 条纹(可以安装的唯一一个是Stripe.net,但我只能在Android和iOS上安装,而不是在PCL部件上。)
  • Cloudinary(我尝试了所有这些并且...它不是与.NET 4.5, Profile=111兼容)

你有任何想法或任何工作,使其工作?我需要条纹付款和Cloudinary图像托管。这已经是公司正在使用的,所以我必须适应。

我在想不要使用任何sdk,只是自己做所有事情,是否允许/可能?

回答

0

这两个软件包都有.Net标准目标,因此我更愿意使用新的* .csproj vs2017格式和库标准的.Net标准。这不是一个以.Net Standard为目标的PCL,它完全不是PCL。

的.Net标准库,新的csproj格式有一定的优势,如:

  • 能够安装目标平台的旧的NuGet包以及靶向净标准(如相反PCL只能安装新的软件包ALD包)
  • 能够在飞行中编辑的csproj文件,但不卸载项目
  • 简化的csproj文件
  • 清洁的依赖性看
  • 更顺畅的工作(错误更少p roblems)
  • 一些其他的东西我不是知道

Here是变化的完整列表。

为此,您需要从模板.Net Standard-> Class Library(.Net Standard)创建新项目。在那里安装所有nuget软件包并从平台项目链接该项目。旧的PCL可以被删除。 Here是一些迁移指南。
注:安装旧的NuGet包面向.NET便携式您需要在您的csproj文件类似的行添加:

你每一个目标框架库需求
<PropertyGroup> 
    <PackageTargetFallback>portable-net45+win8+wp8+wpa81</PackageTargetFallback> 
    <PackageTargetFallback>net461</PackageTargetFallback> 
</PropertyGroup> 

PackageTargetFallback属性。这将允许旧包通过目标检查。

+0

我是一个但失去了,我阅读并尝试过但我不清楚..我需要创建一个.NET解决方案并添加每个子平台?这是他们说的吗? – Emixam23

+0

在你的跨平台解决方案中,你需要为每个平台(android,ios等)添加项目,并针对该平台的某些环境(如单声道,monotouch等)。你可以添加一些带有跨平台代码的项目。该项目将共享库,可移植类库或.Net标准库。整个答案是关于.Net标准库的跨平台项目。 –

相关问题