发布时错误元数据文件 dll 无法找到 CSC

问题描述

我有一个包含多个项目的 Visual Studio 解决方案,特别是一个 DotNet5 asp.net 应用程序,上面有几个 netstandard 2.0 引用。它在调试器中构建和运行良好,但不断抛出元数据错误。它一直专门引用它在 netstandard2 项目中寻找 net5 文件夹。我找不到它从哪里得到这个,有问题的一个曾经是一个针对框架 4.7、4.8 和 net5.0 的多目标项目,但我对多个 dll 感到恼火,只是将它迁移到标准 2.0 并且没有问题,直到我想发布它。

我已经尝试了其他一些引用的问题,清理,重建,删除和重新添加对其他项目的引用,从解决方案中删除了 obj 和 bin 文件夹,删除了 sou 文件,尝试了 VS 2019 (16.9.9)。 0 预览 2) 预览与 2019 (16.8.3) 版本,不同的计算机(从 lan git 存储库拉回)并得到相同的错误......还尝试搜索整个解决方案以获取对 net5.0 的引用,但没有t 在预期位置之外找到它,例如 asp.net 项目的 csproj 及其各自的 pubxml。只是为了好玩,我暂时将库项目重新定位回 net5.0,即使列出的确切文件和路径确实存在,它仍然抛出相同的错误

错误消息中的不同列使用以下错误输入,并删除“敏感”信息。 Visual Studio 没有提供错误代码。还有其他人对尝试什么有更多想法吗?

错误

找不到元数据文件“C:\Users\UserName\source\repos\Solution\Project 2\bin\Release\net5.0\ref\Project 2.dll”。

项目 1

CSC

0

编辑:添加错误消息的其他几个部分:

1/2/2021 7:38:55 PM
System.AggregateException: One or more errors occurred. ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build Failed. Check the Output window for more details.
   --- End of inner exception stack trace ---
---> (Inner Exception #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build Failed. Check the Output window for more details.<---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build Failed. Check the Output window for more details.

===================

而且输出窗口的结尾因为完整的东西有点太长了。仍然无法弄清楚它从哪里获得net5.0作为一个项目参考

/reference:C:\Users\UserName\.nuget\packages\system.xml.xpath.xmldocument\4.0.1\ref\netstandard1.3\System.Xml.XPath.XmlDocument.dll /reference:C:\Users\UserName\.nuget\packages\MysqL.data\8.0.22\lib\net5.0\Ubiety.Dns.Core.dll /reference:"C:\Users\UserName\source\repos\CheckNotes\Project 3\bin\Release\netstandard2.0\Project 3.dll" /reference:"C:\Users\UserName\source\repos\CheckNotes\Project 2\bin\Release\net5.0\ref\Project 2.dll" /reference:C:\Users\UserName\source\repos\CheckNotes\Project 4\bin\Release\netstandard2.0\Project 4.dll /reference:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\WindowsBase.dll" /reference:C:\Users\UserName\.nuget\packages\MysqL.data\8.0.22\lib\net5.0\Zstandard.Net.dll /debug+ /debug:portable /filealign:512 /optimize+ /out:"obj\Release\net5.0\CheckNotes Web - Core.dll" /refout:"obj\Release\net5.0\ref\CheckNotes Web - Core.dll" /target:exe /warnaserror- /utf8output /deterministic+ /langversion:9.0 /analyzerconfig:"obj\Release\net5.0\CheckNotes Web - Core.GeneratedMSBuildEditorConfig.editorconfig" /analyzerconfig:"C:\Program Files\dotnet\sdk\5.0.200-preview.20601.7\Sdks\Microsoft.NET.Sdk\analyzers\build\config\AnalysisLevel_5_Default.editorconfig" /analyzer:"C:\Program Files\dotnet\sdk\5.0.200-preview.20601.7\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Analyzers.dll" /analyzer:"C:\Program Files\dotnet\sdk\5.0.200-preview.20601.7\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll" /analyzer:"C:\Program Files\dotnet\sdk\5.0.200-preview.20601.7\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Components.Analyzers.dll" /analyzer:"C:\Program Files\dotnet\sdk\5.0.200-preview.20601.7\Sdks\Microsoft.NET.Sdk\targets\..\analyzers\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll" /analyzer:"C:\Program Files\dotnet\sdk\5.0.200-preview.20601.7\Sdks\Microsoft.NET.Sdk\targets\..\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll" Controllers\AssemblyController.cs Controllers\CheckNotesController.cs Controllers\ContactsController.cs Controllers\CustomerController.cs Controllers\HomeController.cs Controllers\ImageController.cs Controllers\OperatorPagesController.cs Controllers\PalletsController.cs Controllers\SharedController.cs Controllers\StatisticsController.cs Models\ControllerClass\ctrlrAssembly.cs Models\ControllerClass\CtrlrCheckNotes.cs Models\ControllerClass\ctrlrContacts.cs Models\ControllerClass\CtrlrCustomer.cs Models\ControllerClass\CtrlrOperatorPages.cs Models\ControllerClass\CtrlrPallet.cs Models\ControllerClass\ctrlrstats.cs Models\DataClass\AppSettings.cs Models\Errorviewmodel.cs Models\renderAction.cs Program.cs Startup.cs "obj\Release\net5.0\.NETCoreApp,Version=v5.0.AssemblyAttributes.cs" "obj\Release\net5.0\CheckNotes Web - Core.AssemblyInfo.cs" "obj\Release\net5.0\CheckNotes Web - Core.RazorAssemblyInfo.cs" /warnaserror+:NU1605
CSC(0,0): Error CS0006: Metadata file 'C:\Users\UserName\source\repos\CheckNotes\Project 2\bin\Release\net5.0\ref\Project 2.dll' Could not be found

10>Build Failed. Check the Output window for more details.
========== Build: 9 succeeded,0 Failed,0 up-to-date,0 skipped ==========
========== Publish: 0 succeeded,1 Failed,0 skipped ==========

解决方法

让它发布,但我很困惑......与发布配置文件有关。如果我删除它并生成一个新的,工作正常。一旦我使用 GUI 编辑它,就坏了....再次生成它。到目前为止,手动编辑它似乎没问题,但待定。不确定“修复”是否会在重新启动 Visual Studio 后继续存在。

编辑 - 从头开始​​,发现不同之处。 删除 Properties/FolderProfile.pubxml 中的以下行就可以了。

<TargetFramework>net5.0</TargetFramework>