Xamarin.Forms:重新安装 Visual Studio 2019 v 16.11.11 预览版 1.0 后调试模式下的错误 运行 程序

Xamarin.Forms : Error running program in debug mode after reinstalling Visual Studio 2019 v 16.11.11 preview 1.0

我不得不在 Windows 10 崩溃后重新安装 Visual Studio 2019。我的程序是在VS 2019 16.9.3下开发的,重装后的版本是16.11.11 preview 1.0。 我在使用 Mono.Android 时遇到了问题,因为“社区”文件夹已被“预览”取代(此问题已在之前的 post 中修复 - 感谢 Liyun Zhang)。

我现在有一个新问题 运行 程序处于调试模式。这是错误消息:

无法从“C:\Users\marce.nuget\packages\xamarin.forms.5.0.396\build\net46\Xamarin.Forms.Build.Tasks.dll”实例化任务“XamlCTask”。无法加载文件或程序集 'Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。找不到指定的文件。 MemoCourses.Android C:\Users\marce.nuget\packages\xamarin.forms.5.0.396\build\Xamarin.Forms.targets.

这是 Xamarin 中的代码。Forms.targets :

<XamlCTask
        Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
        ReferencePath = "@(ReferencePath)"
        OptimizeIL = "true"
        DebugSymbols = "$(DebugSymbols)"
        DebugType = "$(DebugType)"
        ValidateOnly = "$(_XFXamlCValidateOnly)"
        KeepXamlResources = "$(XFKeepXamlResources)" />

我卸载了Xamarin.Forms4.5.0.396,重新安装了5.0.0.2401版本:重置失败。 但是,从 4.5.0.396 到 5.0.0.2401 的更新有效。但是 运行 在调试模式下,我的应用程序总是给我同样的错误和一个额外的错误: “XamlCTask”任务声明或使用不正确,或在构造过程中失败。检查任务名称和程序集的拼写。 MemoCourses.AndroidC:\Users\marce.nuget\packages\xamarin.forms.5.0.396\build\Xamarin.Forms.targets114

问题可能是新版本更改了文件夹的名称,请问如何解决?谢谢你帮助我。

通常情况下,由 Xamarin.Forms 版本引起的问题与 compatible/matching 您安装的 NuGet 包无关。

右键单击项目解决方案以打开 NuGet 包管理器以安装包以及 Forms 项目和 android 平台的匹配 Xamarin.Forms 版本。

Visual Studio 2019 有太多问题,我卸载了它并重新安装了 Visual Studio 2022。 但是下面这行代码

Bitmap originalImage = BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length);

给我错误:找不到类型或命名空间名称'Bitmap'(是否缺少 using 指令或程序集引用?)。 如果我单击 'Add Reference to Mono.Android.dll',标题栏顶部会出现一条消息: 'CSharpAddImportCodeFixProvider' 遇到错误并被禁用。'

详情: System.ArgumentException:无法为此文件找到合适的引用类型:“C:\Program Files\Microsoft Visual Studio22\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v9.0\Mono.Android.dll”。 在 Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAVSReferences.Add(字符串 bstrPath) 在 Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.VisualStudioWorkspaceImpl.ApplyMetadataReferenceAdded(ProjectId projectId,MetadataReference metadataReference) 在 Microsoft.CodeAnalysis.Workspace.ApplyProjectChanges(ProjectChanges projectChanges) 在 Microsoft.CodeAnalysis.Workspace.TryApplyChanges(解决方案 newSolution,IProgressTracker progressTracker) 在 Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.VisualStudioWorkspaceImpl.TryApplyChanges(解决方案 newSolution,IProgressTracker progressTracker) 在 Microsoft.CodeAnalysis.CodeActions.ApplyChangesOperation.TryApplyAsync(Workspace 工作空间、IProgressTracker progressTracker、CancellationToken cancellationToken) 在异步 Microsoft.CodeAnalysis.Editor.Implementation.CodeActions.CodeActionEditHandlerService.ProcessOperationsAsync() 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在异步 Microsoft.CodeAnalysis.Editor.Implementation.CodeActions.CodeActionEditHandlerService.ApplyAsync() 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(异常异常对象) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在异步 Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.InvokeWorkerAsync() 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在异步 Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformActionAsync().

但是,如果我用 Bitmap 语句创建一个新程序,添加引用就可以了。 所以我决定从一个空项目开始,复制我项目的所有页面并修改现有页面(这是一项艰巨的工作!)。 非常遗憾微软在这种情况下没有保证兼容性。 无论如何,谢谢所有给我建议的人。

编辑项目(长达数百页)从未奏效。 我在 https://my.visualstudio.com/ 找到了下载 Visual Studio 16.11.13 的方法并安装了它。 我打开我的项目,没有错误。从第一次开始在调试模式下执行就成功了。因此,16.11 版与更新版本(例如预览版、17.1 及更高版本)之间存在不兼容性。

结论:解决此问题的唯一方法是重新安装用于开发该解决方案的相同版本。