首页 > 解决方案 > 创建多目标 Xamarin.Forms NuGet 包

问题描述

我正在尝试构建一个可以安装在 Xamarin.Android、Xamarin.iOS、Xamarin.UWP 和 Xamarin.Forms(.NET 标准)项目中的 NuGet 包。我不能使用 .NET Standard,因为我需要Activity为我的 Android 项目自定义AppDelegate、为我的 iOS 项目自定义,以及为我的 UWP 项目自定义 MainPage。在发起程序中,我想使用ServiceCollection作为 DI 提供程序。

在文档中,他们仍然提到Portable Class Library(明确提到的遗留,在 VS 中不再存在),或手动创建包(无法弄清楚在这里做什么),然后你也有网站Xamarin.Forms Plugin提到也不再存在。

我已经为所有 4 个项目制定了解决方案,但我不知道如何为所有 4 个项目(所有 3 个目标平台)创建单个 NuGet 包。

有谁知道我们如何构建一个包含 Android、iOS 和 UWP 代码的多目标 NuGet 包,就像Xamarin.Forms NuGet 包一样?

我还看到过这样的讨论:如何创建一个项目来为支持 iOS、Android 和 UWP 的 Xamarin Forms 创建 Nuget 包?,但我不确定这是否仍然相关,因为build.propsandbuild.targets不再存在于 MvvmCross 存储库中。

标签: c#xamarin.formsnuget-packageclass-librarymultitargeting

解决方案


起点是https://github.com/onovotny/MSBuildSdkExtras

一年前,我做了一个示例(并收集了一些文档和参考资料),这可能对这个主题很有启发:https ://github.com/ZeProgFactory/MSBuildSdkExtrasTest

并且https://github.com/ZeProgFactory/MediaPlayer正在使用它

最后,您应该在https://github.com/jamesmontemagno查看 James Montemagno 组件的存储库

有了这些参考资料,您应该可以开始了。但是所有这些都与您的方法有很大的不同:

  • 他们正在使用一个项目(通过 MSBuildSdkExtras),
  • 这是为所有平台构建的
  • 最后,将二进制文件组装到一个 NuGet 中。

也许你可能只采取这最后一步。无论如何,这种方法至少是一种选择。希望这会有所帮助……</p>


推荐阅读