将解决方案发布到文件夹时出错 - 自托管 .NET
Posted
技术标签:
【中文标题】将解决方案发布到文件夹时出错 - 自托管 .NET【英文标题】:Error in publishing solution to a folder - Self hosted .NET 【发布时间】:2021-11-17 12:24:04 【问题描述】:我有一个包含多个项目的应用程序/解决方案(.NET 6 - 自托管 Blazor WASM) 它可以在调试中构建和运行,没有任何问题。
现在,我尝试将其发布以在我们的一些本地服务器中进行测试,并尝试将其发布到文件夹中,并作为 .exe 运行。
问题是,当我尝试发布它时,在成功构建后的某个地方,我收到以下错误:
Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
C:\Program Files\dotnet\sdk\6.0.100\Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\targets\Microsoft.NET.Sdk.BlazorWebAssembly.6_0.targets(412,5): Error : System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Microsoft.NET.Sdk.BlazorWebAssembly.ComputeBlazorPublishAssets.GroupExistingStaticWebAssets(Dictionary`2 assemblyAssets, Dictionary`2 nativeAssets, Dictionary`2 satelliteAssemblyAssets, Dictionary`2 symbolAssets, Dictionary`2 compressedRepresentations)
at Microsoft.NET.Sdk.BlazorWebAssembly.ComputeBlazorPublishAssets.Execute()
任何想法可能导致这种情况? 我正在使用 VS 2022(企业版)。
【问题讨论】:
【参考方案1】:这个错误看起来很像一个未解决的问题 #37610 - Blazor AOT 编译在 ComputeBlazorPublishAssets.GroupExistingStaticWebAssets 失败
这里有the steps 进一步诊断问题:
您可以使用
dotnet publish /bl
捕获二进制日志,并使用 MSBuild 结构化日志查看器查看 ComputeBlazorPublishAssets 任务。在那里,如果您展开参数,它将显示所有 ExistingAssets,您可以更好地了解正在发生的事情。 (您会看到重复的资产)
您可以从这里下载 MSBuild 结构化日志查看器:https://msbuildlog.com/
【讨论】:
我发现 .gzip 文件是重复的(4 个)。问题是:他们引用了不同的 .dll,我遇到了与 #37610 问题中的人描述的完全相同的问题。问题是:我怎么能解决这个问题,因为目前似乎没有修复...... @AlexIvan 看起来像 11 月 8 日dotnet/sdk
的 was merged 到 main
的潜在修复。但他们似乎还没有发布包含这些更改的版本。看起来这个问题很难重现。您能否在问题中添加一些重现步骤?以上是关于将解决方案发布到文件夹时出错 - 自托管 .NET的主要内容,如果未能解决你的问题,请参考以下文章
“创建管道时出错。”在 Azure 管道自托管代理中运行 powershell 脚本时
如何让自托管 HTTPS asp.net 核心站点自动使用绑定到端口的证书
使用自托管 Azure Service Fabric 调用 Web API 时出错
在 docker 容器内使用带有 ssl 的自托管(Jetty)元数据库时出错