是否可以在 MAUI 应用程序中安装 Xamarin.Firebase.iOS.CloudMessaging?

问题描述 投票:0回答:2

我正在为 iOS 开发一个需要推送通知的 .NET MAUI 应用程序。据我所知,Firebase Cloud Messaging 是实现此目标的标准方法。我尝试为云消息传递安装的所有 NuGet 包都给出了以下错误消息:

找不到路径 C:\Users\user.nuget\packages\xamarin.firebase.ios.installations\8.10.0.3\lib 的一部分 et6.0-ios15.4\Firebase.Installations.resources\FirebaseInstallations.xcframework\ios-arm64_x86_64-simulator\FirebaseInstallations.framework\Headers\FirebaseInstallations-umbrella.h'。

据我所知,这是文件路径超过 NuGet 260 个字符限制的结果。我怎样才能规避这个限制?有人在 iOS 上的 MAUI 中成功实现了推送通知解决方案吗?

我已尝试增加最大路径长度,如此处所述。不用找了。据我所知,Visual Studio 使用自己的 NuGet 版本忽略了这一点。

我尝试使用 PowerShell 在项目目录中使用

dotnet add package
。这似乎安装了该软件包,但当我尝试构建时,Visual studio 似乎无法识别该软件包已安装。

.net firebase firebase-cloud-messaging maui
2个回答
0
投票

此问题是由 NuGet 长路径问题引起的。可以通过将 Nuget.config 文件添加到解决方案根目录来解决,其中包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <config>
        <clear />
        <add key="globalPackagesFolder" value="C:\Nuget" />
    </config>
</configuration>

0
投票

正如已经提到的,由于尝试查找的文件超出了 MAX_PATH(260 个字符大小),因此出现了问题。但如果上述方法不起作用,请尝试以下方法:

  1. 关闭所有 Visual Studio 实例。

  2. 以管理员身份运行 PowerShell 并执行此命令

    New-ItemProperty -路径“HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem”-名称“LongPathsEnabl ed" -值 1 -PropertyType DWORD -Force

  3. 在驱动器 C ( C:\Nugets ) 中创建一个名为“Nugets”的新文件夹

  4. 再次以管理员身份运行PowerShell并执行以下命令:

    [环境]::SetEnvironmentVariable("NUGET_PACKAGES", "C:\Nugets" ,"Machine")

  5. 删除项目的 obj 和 bin 文件夹

  6. 运行 Visual Studio 并重建项目

7.0 还没有工作吗?

7.1 关闭 Visual Studio

7.2 打开 CMD/PowerShell 并导航到项目的文件夹,例如:

cd "C:\Users\Admin\source\repos\MySolution\MyProject"
然后运行命令
dotnet run

7.3 再次打开 Visual Studio 并构建

© www.soinside.com 2019 - 2024. All rights reserved.