Skip to content

ConvertDllsToWebCil fails ugly for invalid assembly #101154

Closed
@danmoseley

Description

@danmoseley

Somewhere in this stack it should catch BadImageFormatException and Log.ErrorFromException(..) then return false from the task.
I assume the repro is to feed the task an empty file, or similar.
version: 8.0.4

just after

2024-04-17T00:49:58.7245127Z   Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
2024-04-17T00:49:58.7274180Z   Optimizing assemblies for size. This process might take a while.

I get

.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018: The "ConvertDllsToWebCil" task failed unexpectedly. [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018: System.BadImageFormatException: Image is too small. [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at System.Reflection.Throw.ImageTooSmall() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at System.Reflection.PortableExecutable.PEHeaders..ctor(Stream peStream, Int32 size, Boolean isLoadedImage) [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at System.Reflection.PortableExecutable.PEReader.InitializePEHeaders() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at System.Reflection.PortableExecutable.PEReader.get_PEHeaders() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at Microsoft.NET.WebAssembly.Webcil.WebcilConverter.GatherInfo(PEReader peReader, WCFileInfo& wcInfo, PEFileInfo& peInfo) [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at Microsoft.NET.WebAssembly.Webcil.WebcilConverter.ConvertToWebcil() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at Microsoft.WebAssembly.Build.Tasks.WebcilConverter.ConvertToWebcil() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at Microsoft.NET.Sdk.WebAssembly.ConvertDllsToWebCil.Execute() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]
.../.nuget/packages/microsoft.net.sdk.webassembly.pack/8.0.4/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets(452,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [/home/runner/work/aspire-samples/aspire-samples/samples/Metrics/MetricsApp.Client/MetricsApp.Client.csproj]

https://productionresultssa13.blob.core.windows.net/actions-results/5604d4bc-a8b0-4df9-99a1-482f4b6ac748/workflow-job-run-1d849a45-2f30-5fbb-3226-b730a17a93af/logs/job/job-logs.txt?rsct=text%2Fplain&se=2024-04-17T01%3A10%3A19Z&sig=o0tEe09NJLnPaaMWW9u67PdcAsaTGDKrNhyowktpPiE%3D&sp=r&spr=https&sr=b&st=2024-04-17T01%3A00%3A14Z&sv=2021-12-02

I don't know where the bug is leading to this, perhaps the trimming is producing an empty file, but that's a separate issue.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions