VS for Mac编译报错:Xamarin.Forms任务与目标不匹配及相关问题咨询
嘿,这个问题我太熟了——Xamarin.Forms版本不一致绝对是这类报错的头号元凶!咱们先解决报错,再告诉你怎么找.csproj文件:
这个报错的核心原因就是你的解决方案里不同项目引用的Xamarin.Forms版本不统一,哪怕只有一个项目没更新到3.0.0.482510,都会触发这个任务与目标不匹配的问题。按下面的步骤来:
第一步:全面检查所有项目的版本
打开你的解决方案,逐个右键点击每个项目(包括共享代码项目、iOS项目、Android项目,还有其他平台项目如果有的话),选择「管理NuGet包」,切换到「已安装」标签,查看Xamarin.Forms的版本是否都是3.0.0.482510。别漏了任何一个项目,哪怕是不起眼的类库项目!第二步:统一所有项目的Xamarin.Forms版本
有两种高效的方式:- NuGet批量更新:右键点击解决方案→选择「管理解决方案的NuGet包」,找到Xamarin.Forms,在右侧勾选所有需要更新的项目,然后选择版本3.0.0.482510,点击「更新」即可一键统一。
- 手动修改.csproj文件(后面会说怎么找到它):打开每个项目的.csproj文件,找到类似下面的代码段,把Version值统一改成3.0.0.482510:
如果你用的是旧的引用格式,会是<PackageReference Include="Xamarin.Forms" Version="3.0.0.482510" /><Reference Include="Xamarin.Forms, Version=xxx...",同样把版本号改成一致的。
第三步:清理+重建解决方案
做完版本统一后,先点击菜单栏的「生成」→「清理解决方案」,然后手动删除每个项目下的bin和obj文件夹(这些文件夹里的旧编译文件很容易导致缓存问题),最后再点击「生成」→「重建解决方案」。额外小提示
你的Visual Studio for Mac 7.3.2和Xamarin.Forms 3.0.0.482510是兼容的,但如果后续还是有奇怪的问题,可以考虑把VS for Mac更新到对应版本的最新补丁(不过先完成前面的步骤,大概率就能解决)。
有两种简单的方式:
方式一:直接在VS里编辑
右键点击解决方案面板中的目标项目,选择「编辑项目文件」,就能直接在VS的编辑器里打开.csproj文件,修改起来非常方便。方式二:在Finder中定位文件
右键点击目标项目,选择「显示在Finder」,在弹出的文件夹里,找到和项目名称完全一致的.csproj文件(比如你的项目叫MyXamarinApp,那文件就是MyXamarinApp.csproj),双击就能用文本编辑器打开查看或修改。
内容的提问来源于stack exchange,提问作者MilkBottle

