【发布时间】:2023-01-04 00:47:40
【问题描述】:
在 VS2022 中,我启动了一个新的 Xamarin Android App 项目并决定我需要添加一个 nuget 包(step one here, but not really relevant。添加包命令返回以下错误:
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.
project.csproj 的第 112 行是:
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
那是来自 VS2022 中的模板,没有任何改变。现在,我找到了目标文件所在的位置,但它不在上述位置。因此,无论这个 MSBuildExtensionsPath 是什么,我都想更改它以便它可以正常工作。但是,我无法在任何文档中找到有关如何执行此操作的信息。
我想我可以删除 MSBuildExtensionPath 并手动设置目录,但这会限制我使用此设备处理项目,并迫使我进行覆盖并在我想执行此操作的每个其他项目中都有该限制。
编辑
我今晚做的一些后续工作:
我尝试使用 cmd 提示设置 MSBuildExtensionPath as in this distantly similar old post。
我还尝试查看 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild 下的注册表,但在任何子文件夹中都没有 ExtensionsPath 的键。
我对编程很陌生。
【问题讨论】:
-
你能分享完整的 .csproj 文件吗?我尝试在 Xamarin Android App 项目中添加 nuget 包,但无法重现此问题。将文件C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Xamarin复制到C:\Program Files\dotnet\sdk\7.0.100有用吗?
-
我将 Visual Studio 下的整个 Xamarin 文件夹复制到它试图进入 dotnet\sdk\7.0.100 的适当位置,并且似乎已将其拾取。我没想到这是一个可重现的问题,但这只会让人更加困惑。我可以共享 .csproj 文件,但它实际上只是 New -> Project -> Android App -> Tabbed 的未修改结果。谢谢你的帮助。
-
你说“添加包命令返回以下错误”,你使用了什么命令?您是否尝试在 visual studio 安装程序中修复 vs?
-
我可以知道你是否有机会检查我的答案吗?如果您有任何其他问题,我很乐意提供帮助。
标签: visual-studio msbuild nuget