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

Posted

技术标签:

【中文标题】发布时找不到 CSC 错误元数据文件 dll【英文标题】:Error Metadata file dll could not be found CSC when publishing 【发布时间】:2021-04-08 17:54:40 【问题描述】:

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

我尝试了其他一些问题,清理、重建、删除和重新添加对其他项目的引用,从解决方案中删除了 obj 和 bin 文件夹,删除了 sou 文件,尝试了 VS 2019 (16.9. 0 预览 2) 预览与 2019 (16.8.3) 版本,不同的计算机(从 lan git 存储库拉回)并得到相同的错误....还尝试在整个解决方案中搜索对 net5.0 的引用但没有在 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.

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

输出窗口的结尾,因为 full 的东西有点太长了。仍然无法弄清楚它在哪里获得 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 ==========

【问题讨论】:

很遗憾,我不太明白你有什么问题。但请查看您项目的“csproj”文件并确保在&lt;TargetFrameworks&gt; .... &lt;/TargetFrameworks&gt; 下仅列出您的目标平台。 我之前已经检查过了。并已更改回 而不是 但针对 netstandard2.0 而不是多目标。但是项目在调试器中构建和运行没有任何问题,只是在发布项目时抛出 Metadata file not found 错误。 这能回答你的问题吗? Metadata file '.dll' could not be found 我以前见过那个....又试了一次,还是一无所获 【参考方案1】:

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

编辑 - 从头开始​​,发现不同之处。 在Properties/FolderProfile.pubxml中去掉下面一行就可以了。

&lt;TargetFramework&gt;net5.0&lt;/TargetFramework&gt;

【讨论】:

以上是关于发布时找不到 CSC 错误元数据文件 dll的主要内容,如果未能解决你的问题,请参考以下文章

元数据文件...构建项目时找不到错误

错误“在 Visual Studio 中找不到元数据文件 '...\Release\project.dll'”

找不到元数据文件“.dll”

无法解析程序集或 Windows 元数据文件“System.Configuration.dll”

触发错误:ORA-01403 插入时找不到数据

我在 django 模板中显示数据库数据时找不到错误