【问题标题】:Is it possible to use "PackageReference" in Xamarin.Android or Xamarin.iOS projects?是否可以在 Xamarin.Android 或 Xamarin.iOS 项目中使用“PackageReference”?
【发布时间】:2018-08-22 07:29:26
【问题描述】:

默认情况下,Xamarin.iOS 和 Xamarin.Android 项目使用 package.config 文件来管理 Nuget 依赖项。关于Package references (PackageReference) in project files 的微软页面说:

默认情况下,PackageReference 用于 .NET Core 项目,.NET 标准项目和面向 Windows 10 Build 15063 的 UWP 项目 (创作者更新)及更高版本。 .NET 完整框架项目支持 PackageReference,但目前默认为 packages.config。使用 PackageReference,将packages.config中的依赖项迁移到 您的项目文件,然后删除 packages.config。

我认为这对于在 Xamarin.Android 或 Xamarin.iOS 项目中使用 PackageReference 样式并不清楚。

我的问题:是否可以在 Xamarin.iOS 和 Xamarin.Android 项目中使用 PackageReference?

【问题讨论】:

    标签: .net xamarin xamarin.forms xamarin.ios xamarin.android


    【解决方案1】:

    是的,PackageReference 适用于 Xamarin.iOS|Android 项目和适用于 Windows 或 Mac 的 Visual Studio 或通过命令行(nuget restore 或通过 msbuild)。

    将以下内容添加到您的 Xamarin.iOS 和/或 Xamarin.Android .csproj 文件的顶部:

      <PropertyGroup>
        <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
      </PropertyGroup>
    

    我目前的步骤是:

    • 复制您的packages.config 作为备份
      • 在上一步重新添加包时将其用作参考
    • 从项目中手动删除所有包(Xamarin.iOS 或 Xamarin.Android)
    • 编辑 csproj 并添加 PackageReference
    • 仅重新添加顶级包

    注意:为了正确更新项目引用,我通过 IDE 逐一删除手动包。此外,在附加 PackageReference 之后重新添加它们时,csproj 会正确更新(您可以在 csproj 文本中手动执行此操作,但这很痛苦且容易搞砸)。

    【讨论】:

    • 你好@SushiHangover。谢谢您的回答。这种方法与 Visual Studio for Mac 兼容吗?抱歉,我是 .NET 世界的新手。
    • @BrunoPeres 是的,刚刚更新了答案,我主要在 VS4M 中执行此操作,因为这是我的主要开发 IDE(当然,如果在 VSfW 中也可以使用)。
    • 再次感谢您!我赞成您的回答,现在我将在这里测试您的方法。我会尽快接受您的回答。 :)
    • 看起来我们现在有一个功能Migrate packages.config to PackageReference,如果你在你的项目中右击References。在VSfW2017 15.9.4 Preview 1.0 为我工作并进行了一些手部清理
    • 迁移包在 2021 年末仍然无法用于 VS for Mac :-(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多