尝试归档Xamarin应用程序以进行发布时找不到程序集Mono.Android

a0x5cqrl  于 2022-12-07  发布在  Android
关注(0)|答案(1)|浏览(139)

我不得不在一个我没有创建的Xamarin项目上做一些工作,这个项目目前正在生产中。我可以在Android和iPhone上的Debug and Release中构建应用程序,就像其他克隆repo的人一样。但是,我的团队中没有人能够成功地将应用程序存档以进行发布。每个人都得到同样的错误:Could not resolve this reference. Could not locate the assembly "Mono.Android". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

    • 问题1:Mono.Android在磁盘上的确切位置?**

Could not locate the assembly "Mono.Android". Check to make sure the assembly exists on disk
在references文件夹中的projects.droid文件夹中Mono.android确实存在,但显然这还不够。如果这不是唯一的地方,它还应该存在在哪里?
在Windows上,人们说在C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid {版本号}\Mono.Android.dll中查找,但我在Mac上,那么这可能是在哪里呢?

    • 问题2:为什么我一开始会遇到这个错误?**

无论问题是什么,我不明白为什么在尝试只存档. IOS项目时会触发此错误。据我所知,这不应该与Mono.Android有任何关系。我觉得我应该只在尝试存档. Droid项目时才会收到此错误。

    • 问题3:对此有什么解决方案?**

需要最低Android版本:6(API等级23)
目标Android版本:9.0(API等级28)
团队中的每个人都在使用VS for Mac。
我已经确认我已经安装了Android 9 Pie和它的所有软件包。我已经尝试在Visual Studio for Mac 2019和2022上进行存档发布,但得到了相同的结果。我已经让团队中的其他人尝试了同样的方法。
我尝试重新引用Mono.Android,但当我尝试添加引用时,我向下滚动到Mono.Android,版本是0.0.0.0。为什么会这样?
我错过了什么?我该如何获得它?
如果您需要任何其他信息,请询问,我将尽我所能与您分享。

8yoxcaq7

8yoxcaq71#

我终于成功地部署了这个应用程序。我在Droid项目的csproj文件中发现了一个hardcoded path to Mono.Android。我删除了它,Mono.Android错误停止了,但我仍然收到类似的错误,所以下面是发生的事情:
我相信该应用程序最初是在VS for Mac 2017中开发的,使用了任何版本的VS for Mac 2017附带的Xamarin软件包版本。我使用的是M1 Mac,无法安装VS for Mac 2017或我需要的许多软件包。因此,我所做的是转移到VS for Mac 2022,并升级了所有Xamarin包,然后修复了由此产生的错误。
一旦所有的软件包都升级了,应用程序仍然不能正常部署,所以我下载了Transporter,并用它来部署应用程序,这非常容易。
我希望这对将来的某个人有帮助。

相关问题