![](/img/trans.png)
[英]Microsoft.Build.Evaluation.Project add folder and file force refresh of project in VS
[英]Why does loading a Xamarin Android .csproj into a Microsoft.Build.Evaluation.Project throw InvalidPropectFileException due to missing .targets file?
我正在尝试使用Microsoft.Build.Evaluation.Project
的实例在 .NET 5.0 控制台应用程序中打开 Xamarin Android.csproj 文件。 此外,我还尝试对 .NET Framework 4.6.1 项目执行相同的操作。
加载代码为:
var fileName = @"C:\Users\vchel\source\repos\BlankAndroid\BlankAndroid\BlankAndroid.csproj";
var project = new global::Microsoft.Build.Evaluation.Project(fileName, null, null, new ProjectCollection());
当我尝试实例化Project
object 时,出现以下异常:
Microsoft.Build.Exceptions.InvalidProjectFileException:
The imported project "C:\Users\vchel\source\repos\ProjectLoadTest\ProjectLoadTest\bin\Debug\net5.0\Xamarin\Android\Xamarin.Android.CSharp.targets" was not found.
Confirm that the expression in the Import declaration "C:\Users\vchel\source\repos\ProjectLoadTest\ProjectLoadTest\bin\Debug\net5.0\Xamarin\Android\Xamarin.Android.CSharp.targets" is correct, and that the file exists on disk. C:\Users\vchel\source\repos\BlankAndroid\BlankAndroid\BlankAndroid.csproj
上面错误中引用的 Xamarin.Android.CSharp.targets 文件出现在我正在加载的 .csproj 中,如以下代码片段所示:
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
请注意,.csproj 引用带有$(MSBuildExtensionPath)
前缀的 Xamarin.Android.CSharp.targtets 文件,但在运行时,它与正在运行的控制台 application.exe 的位置交换,而不是
我尝试加载的 Android 项目在 Visual Studio 中正确打开并且编译/运行没有问题。
为什么这个 Android 项目在 Visual Studio 中打开没有任何问题,但在Microsoft.Build.Evaluation.Project
object 中尝试打开时却失败了?
看来我之前确实遇到过同样的问题,但它不在 Android 项目中,所以我将把这个问题留在这里以解决特定于 Android 的问题。
一般的问题在这里讨论:
如何使用 MSBuild NuGet 将.csproj 文件加载到 .NET Core 3.0
总结是——.target 文件与正在安装的 nuget 包是分开的,而且项目 class 似乎无法解析 $(MSBuildExtensionsPath)。 因此,要解决此问题,应将相关的.targets文件添加到项目中并复制到output(bin)文件夹中。
在我的机器上,可以在以下位置找到原始文件:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android
我必须将以下文件添加到我的应用程序中。 请注意,它们已添加到Xamarin/Android/
文件夹中:
如果较新,项目可以标记为复制:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.