将项目迁移到 .net6 出现问题

Migrating project to .net6 getting issue

提问人:Android Developer World 提问时间:11/7/2023 最后编辑:Android Developer World 更新时间:11/9/2023 访问量:52

问:

以下代码适用于 Xamarin 项目:

set(DEMO_MONO_BASE "/Library/Frameworks/Mono.framework/Versions/Current"
                  CACHE STRING "Path to Mono for csharp bindings")

set(DEMO_XAMARIN_BASE "/Library/Frameworks/Xamarin.iOS.framework/Versions/Current"
                     CACHE STRING "Path to Xamarin for csharp bindings")

set(CSC ${DEMO_MONO_BASE}/bin/csc)

add_custom_target(sea ALL
                      ${CSC} -o- -out:${CMAKE_BINARY_DIR}/abc/abc.dll
                      -res:${CMAKE_BINARY_DIR}/xyz/abc.a
                      -res:${CMAKE_BINARY_DIR}/libxyz_client.a
                      ${CSHARP_FILES} -target:library -unsafe
                      -reference:${DEMO_XAMARIN_BASE}/lib/mono/Xamarin.iOS/Xamarin.iOS.dll
                      DEPENDS ${CSHARP_PROCESSED} xyz_swig)

我正在尝试为 net6.0 版本生成 dll。但是低于错误。 为 net6 添加了以下配置

#reference 旗 set(SEA_DOTNET_BASE “/usr/local/share/dotnet/packs/Microsoft.iOS.Ref/16.4.7067/ref/net7.0/Microsoft.iOS.dll”)

set_target_properties(${this_target} 属性 DOTNET_SDK “Microsoft.NET.Sdk”DOTNET_TARGET_FRAMEWORK“net7.0”)

问题:

类型“Attribute”在未引用的程序集中定义。必须添加对程序集“System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用。

dotnet 中以下命令的等效路径是什么:

DEMO_MONO_BASE和DEMO_XAMARIN_BASE

C# iOS Xamarin CMamake NET-6.0

评论

0赞 Cheesebaron 11/7/2023
-reference:${DEMO_XAMARIN_BASE}/lib/mono/Xamarin.iOS/Xamarin.iOS.dll这看起来很可疑。你仍然指的是 Xamarin.iOS,它与 net6.0-ios 不兼容。不应提及任何 Mono 或 Xamarin。
0赞 Android Developer World 11/7/2023
感谢您@Cheesebaron回复,您知道net6.0需要通过什么吗,因为我正在寻找dll的路径作为参考。
0赞 Cheesebaron 11/7/2023
你有实际的iOS特定代码吗?
0赞 Android Developer World 11/9/2023
@Cheesebaron是的,我有目标 c 代码。添加下面的路径后,我遇到了上述问题。set(SEA_DOTNET_BASE “/usr/local/share/dotnet/packs/Microsoft.iOS.Ref/16.4.7067/ref/net7.0/Microsoft.iOS.dll”) set_target_properties(${this_target} 属性 DOTNET_SDK “Microsoft.NET.Sdk” DOTNET_TARGET_FRAMEWORK “net7.0”)

答: 暂无答案