如何在Visual Studio 2022中修改MSBuildExtensionsPath?
解决Xamarin Android项目中MSBuildExtensionsPath指向错误的问题
问题背景
新建VS2022 Xamarin Android App项目后,添加NuGet包时触发以下错误:
C:\Users\user\Source\Repos\user\project\project.csproj(112,3): error MSB4019: The imported project "C:\Program Files\dotnet\sdk\7.0.100\Xamarin\Android\Xamarin.Android.CSharp.targets" was not found. Confirm that the expression in the Import declaration "C:\Program Files\dotnet\sdk\7.0.100\\Xamarin\Android\Xamarin.Android.CSharp.targets" is correct, and that the file exists on disk.
项目文件第112行为模板默认生成的导入语句:
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
已找到目标.targets文件但路径不匹配,不想硬编码路径导致项目无法跨设备使用。
解决方案
1. 全局设置MSBuildExtensionsPath环境变量
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域点击「新建」:
- 变量名:
MSBuildExtensionsPath - 变量值:填写你找到的
Xamarin.Android.CSharp.targets所在的上级MSBuild目录(例如C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild)
- 变量名:
- 保存后重启Visual Studio,重新尝试添加NuGet包
2. 项目内动态适配路径(无硬编码)
在项目文件的<Import>语句前添加以下代码,让项目自动检测并修正路径:
<PropertyGroup> <MSBuildExtensionsPath Condition="!Exists('$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets')">$(VSInstallDir)MSBuild</MSBuildExtensionsPath> </PropertyGroup>
这段代码会检查默认路径是否有效,无效则自动使用VS安装目录下的MSBuild路径,不影响其他设备开发。
3. 修复Visual Studio Xamarin组件
若以上方法无效,可能是Xamarin组件安装不完整:
- 打开Visual Studio Installer,选择你的VS2022实例,点击「修改」
- 在「工作负载」中找到「移动开发.NET」,确保勾选「Xamarin.Android」组件
- 点击「修改」完成安装,重启VS后重试
内容的提问来源于stack exchange,提问作者cry_wifi
相关产品推荐
相关产品推荐

