使用最新Xamarin组件在Visual Studio for Mac遇MSB3277版本冲突警告求助
解决Visual Studio for Mac中Xamarin项目的MSB3277版本冲突警告
嘿,我之前也碰到过这个Microsoft.CSharp版本冲突的警告,给你几个亲测有效的解决办法:
统一NuGet包版本
打开你的解决方案,右键点击它选择「管理解决方案的NuGet程序包」,切换到「已安装」标签,找出所有用到Microsoft.CSharp的包,把它们的版本统一成同一个稳定版(建议选最新的兼容版本),之后点击「还原」再重新构建项目。手动编辑项目文件强制指定版本
如果NuGet管理没搞定,直接编辑项目的.csproj文件,添加以下代码段(记得把版本号替换成你需要的,比如4.7.0):<PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup> <ItemGroup> <Reference Include="Microsoft.CSharp"> <HintPath>..\packages\Microsoft.CSharp.4.7.0\lib\net46\Microsoft.CSharp.dll</HintPath> <Version>4.7.0</Version> </Reference> </ItemGroup>保存文件后重新加载项目,再尝试构建。
清理缓存后重建
有时候本地构建缓存会导致版本冲突残留,试试这几步:- 点击菜单栏「项目」→「清理解决方案」
- 删除项目目录下的
bin和obj文件夹 - 最后点击「项目」→「重建解决方案」
查看详细日志定位冲突源
警告提示里提到把日志详细程度设为「详细」能看到具体的冲突信息,操作步骤如下:- 打开Visual Studio for Mac的「偏好设置」→「项目」→「构建」
- 在「日志详细程度」下拉菜单中选择「详细」
- 重新构建项目,查看构建日志里的冲突条目,就能精准定位是哪个依赖引入了不同版本的
Microsoft.CSharp,再针对性处理那个依赖即可。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

