【问题标题】:Compiling/Archiving MAUI project in Release configuration fails在发布配置中编译/存档 MAUI 项目失败
【发布时间】:2022-11-02 14:42:10
【问题描述】:

我有几个 MAUI 项目,其中包括对提供 API 访问的其他项目的引用。引用的项目生成 dll。当我在发布模式下编译 MAUI 应用程序并以我的物理 iPhone 为目标时,编译失败并显示“资产文件 '../project.Domain.Shared/obj/project.assets.json' 没有 'net6. 0-ios'。引用的项目是.dll生成项目,不应该(也不能)包含net6.0-ios属性。这个错误只有在我附加我的手机并在编译过程中定位它时才会出现。我可以附加Android 设备并在发布模式下无错误地编译,甚至创建存档。感谢您提供解决此问题的任何帮助。

我尝试在错误中引用的项目中添加 net6.0-ios 属性,但这样做会导致整个解决方案无法编译。我正在使用 Xcode 14.x,并且看到其他建议使用 13.x 版本的帖子可能会解决问题。我试过了,但仍然无法让项目正确编译。

【问题讨论】:

  • 该错误主要发生在尝试创建存档时。我正在为 Mac 使用 VS 2022 预览版 4.0。
  • dll 针对哪些框架? AFAIK,应该能够将.net6.0-ios 应用程序与net6.0 或netstandard2.1(或两者都支持)的dll 链接。
  • 我刚刚注意到Asset file 消息。多目标构建器不知道将 dll 的 iOS 资产放在哪里。您可能需要更改包含和引用这些资源的方式。我不知道细节,但鉴于您说“不应该也不能包含 net6.0-ios 属性”,他们需要保留跨平台捆绑包的一部分。 ios 资产构建器根本不应该看到它们。
  • 该 dll 以 netstandard2.1 为目标。
  • “只有在我连接手机并在编译期间定位它时才会出现此错误。”选择配置(发布 | iPhone)后,项目属性/iOS 构建/链接器的当前值是多少?尝试不同的设置。 [不要链接|仅框架 |全部链接]

标签: maui visual-studio-mac-2022


【解决方案1】:

对于 iOS,MAUI 目前仅支持在 .NET 命令行上发布。您需要使用命令 dotnet publish -f:net6.0-ios -c:Release... 创建 .ipa 文件。更多详情请参考本官方文档:Publish a .NET MAUI app for iOS - .NET MAUI

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2017-07-29
    • 2017-07-25
    • 1970-01-01
    相关资源
    最近更新 更多