dotnet / dotnet/roslyn

The assembly update failed.

Open
#73,173 8 comments 0 reactions 1 assignee Claimed by @tmat View on GitHub
Interactive-Debugging Interactive-EnC
Dominant language
C#
Stars
20.7k
Forks
4.3k
PR merge metrics
PR metrics pending

Description

**Version Used**:

**Steps to Reproduce**:

Console.WriteLine(MetadataUpdater.IsSupported); //True
Console.WriteLine(Debugger.IsAttached); //False

```cs
//Dynamic Compile - Get New Assembly Stream
var compileResult = _compilation.Emit(
dllStream,
pdbStream: pdbStream,
xmlDocumentationStream: xmlStream,
metadataPEStream: metaStream
);
LogCompilationEvent?.Invoke(_compilation.GetNatashaLog());

//Update
if (compileResult.Success)
{
var ilDelta = AsReadOnlySpan(dllStream);
var pdbDelta = AsReadOnlySpan(pdbStream);
var metadataDelta = AsReadOnlySpan(metaStream);
MetadataUpdater.ApplyUpdate(oldAssembly, metadataDelta, ilDelta, pdbDelta);
}

static ReadOnlySpan AsReadOnlySpan(Stream input)
{
input.Seek(0, SeekOrigin.Begin);
using MemoryStream ms = new MemoryStream();
input.CopyTo(ms);
return ms.GetBuffer().AsSpan();
}
```

```cs
//old assembly:
public class A{ public int Code = 1; public void Show(){ Console.WriteLine(Code); } }
//new assembly:
public class A{ public int Code = 2; public int Code1 = 0; public void Show(){ Console.WriteLine(Code); } }
```
InvalidOperationException : The assembly update failed.

**Diagnostic Id**:

**Expected Behavior**:
The assembly update succeed.

**Actual Behavior**:
The assembly update failed.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.