Код: Выделить всё
CSharpCompilation compilation = CSharpCompilation
.Create(
"InMemoryAssembly",
new[] { CSharpSyntaxTree.ParseText(stringText) },
ReferenceAssemblies.Net80)
.WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, optimizationLevel: OptimizationLevel.Debug, checkOverflow: true))
.AddReferences(references);
try
{
using (var stream = new MemoryStream())
{
EmitResult result = compilation.Emit(stream);
stream.Seek(0, SeekOrigin.Begin);
byte[] byteAssembly = stream.ToArray();
return (result, byteAssembly);
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
При выполнении кода докера зависает на EmitResult result = Compilation.Emit(stream);, и он не выдает никаких исключений и не двигается дальше.
Мой файл докера:
Код: Выделить всё
FROM mcr.microsoft.com/dotnet/aspnet:8.0
$extraCommand
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "myapp.dll"]
- Basic.Reference.Assemblies Version="1.6.0"
- Microsoft.CodeAnasis.CSharp Version="4.10.0-2.final"
- Microsoft.CSharp Version="4.7.0.0"
- System.Reflection.Emit Version="4.7.0"
Спасибо за помощь.
Подробнее здесь: https://stackoverflow.com/questions/783 ... -in-docker