Gol*_*ike 2 mono visual-studio xamarin.android nuget nuget-package
我在 Windows 上的 Visual Studio 中遇到Xamarin.Android项目的奇怪行为。
我创建了一个新的Android 空白项目,并尝试安装NuGet 包“AForge” (一个数学库),但收到以下错误消息:
AForge 2.2.5 包与 monoandroid81 (MonoAndroid,Version=v8.1) 不兼容。
在重新启动 Visual Studio 和计算机后,我已经尝试重新创建多个项目,但问题仍然相同。
但是,如果我在Mac上做同样的事情,通过Visual Studio for Mac,我不会遇到同样的问题:软件包安装良好。
此外,我可以在 package.config 文件中看到,该包与以下内容密切相关monodroid81:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AForge" version="2.2.5" targetFramework="monoandroid81" />
</packages>
Run Code Online (Sandbox Code Playgroud)
你对这个问题有什么解释吗?
更新:新问题
嗨@Leo Liu-MSFT,当我遇到一个新问题时,我会回来找你。dll 副本在本地运行良好,但在 AppCenter 上出现错误:
核心编译:
/Library/Frameworks/Mono.framework/Versions/5.10.1/lib/mono/4.5/csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE ; XAMARIN_ANDROID_v1_0 ; 手机;安卓; ANDROID_1 ; ANDROID_2 ; ANDROID_3 ; ANDROID_4 ; ANDROID_5 ; ANDROID_6 ; ANDROID_7 ; ANDROID_8 ; ANDROID_9 ; ANDROID_10 ; ANDROID_11 ; ANDROID_12 ; ANDROID_13 ; ANDROID_14 ; ANDROID_15; ANDROID_16 ; ANDROID_17 ; ANDROID_18 ; ANDROID_19 ; ANDROID_20 ; ANDROID_21 ; ANDROID_22 ; ANDROID_23 ; ANDROID_24 ; ANDROID_25 ; ANDROID_26 ; ANDROID_27 /reference:/Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v1.0/Java.Interop.dll /reference:/Users/vsts/.nuget/packages/microsoft.appcenter.analytics/1.7。 0/lib/MonoAndroid403/Microsoft.AppCenter.Analytics.Android.Bindings.dll /reference:/Users/vsts/.nuget/packages/microsoft.appcenter.analytics/1.7.0/lib/MonoAndroid403/Microsoft.AppCenter.Analytics。 dll /reference:/Users/vsts/.nuget/packages/... Services/AudioService.cs(8,7): error CS0246: The type or namespace name 'AForge' could not be found(你是否缺少 using 指令或程序集参考?)[/Users/vsts/agent/2.136.1/work/1/s/XxxApp/XxxApp.csproj] 完成构建项目“/Users/vsts/agent/2.136.1/work/1/s /XxxApp/XxxApp.csproj”(PackageForAndroid 目标)——失败。
所以我尝试了你的建议,但是当我尝试保存包时出现错误:
本地文件头已损坏'
你还有什么建议吗?
你对这个问题有什么解释吗?
您可以在此处获取官方文档 :
说明:使用 PackageReference,将忽略 lib 文件夹根目录中没有目标框架特定子文件夹的程序集。NuGet 查找与项目目标框架对应的目标框架名称 (TFM) 匹配的子文件夹,并将匹配的程序集安装到项目中。
在这种情况下,NuGet 会考虑将此包安装到与 monoandroid81 不兼容的 .NET Framework。然后你会出现错误“Package AForge 2.2.5 is not compatible with monoandroid81”。
要解决这个问题,最好的方法是联系AForge NuGet包的作者更新这个包,或者你也可以直接在你的项目中添加引用dll文件。
此外,如果您仍然想使用 nuget 来管理此包,我想为您提供解决此问题的解决方法:
从nuget.org下载这个 nuget 包。
复制下载包,用 重命名.zip,如aforge.2.2.5 - Copy.nupkg.zip,然后解压。
aforge.2.2.5.nupkg用NuGet Package Explorer(从微软商店获取)打开包,MonoAndroid81在lib节点下添加一个新文件夹aforge.2.2.5 - Copy.nupkg.zip,从复制文件夹中添加现有文件AForge.dll和AForge.xml ,保存这个nuget包。
将此新创建的 nuget 包添加到 nuget 本地提要,然后将此 nuget 包添加到项目中。C:\Users\<UserName>\.nuget\packages\aforge在添加包之前,不要忘记删除 nuget 包缓存。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
5371 次 |
| 最近记录: |