🐛 Fix Build Output display when published (#5)
This commit is contained in:
@@ -24,10 +24,8 @@ public class BuildService(ILogger<BuildService> logger)
|
|||||||
public async Task MsBuildAsync(string solutionOrProjectFilePath, BuildType buildType = BuildType.Build, CancellationToken cancellationToken = default)
|
public async Task MsBuildAsync(string solutionOrProjectFilePath, BuildType buildType = BuildType.Build, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
using var _ = SharpIdeOtel.Source.StartActivity($"{nameof(BuildService)}.{nameof(MsBuildAsync)}");
|
using var _ = SharpIdeOtel.Source.StartActivity($"{nameof(BuildService)}.{nameof(MsBuildAsync)}");
|
||||||
var normalOut = Console.Out;
|
|
||||||
Console.SetOut(BuildTextWriter);
|
var terminalLogger = InternalTerminalLoggerFactory.CreateLogger(BuildTextWriter);
|
||||||
var terminalLogger = InternalTerminalLoggerFactory.CreateLogger();
|
|
||||||
Console.SetOut(normalOut);
|
|
||||||
|
|
||||||
var nodesToBuildWith = GetBuildNodeCount(Environment.ProcessorCount);
|
var nodesToBuildWith = GetBuildNodeCount(Environment.ProcessorCount);
|
||||||
var buildParameters = new BuildParameters
|
var buildParameters = new BuildParameters
|
||||||
|
|||||||
@@ -1,24 +1,25 @@
|
|||||||
using Microsoft.Build.Framework;
|
using Ardalis.GuardClauses;
|
||||||
|
using Microsoft.Build.Framework;
|
||||||
using Microsoft.Build.Logging;
|
using Microsoft.Build.Logging;
|
||||||
|
|
||||||
namespace SharpIDE.Application.Features.Logging;
|
namespace SharpIDE.Application.Features.Logging;
|
||||||
|
|
||||||
public class InternalTerminalLoggerFactory
|
public class InternalTerminalLoggerFactory
|
||||||
{
|
{
|
||||||
public static ILogger CreateLogger()
|
public static ILogger CreateLogger(TextWriter output)
|
||||||
{
|
{
|
||||||
var logger = CreateLogger("FORCECONSOLECOLOR", LoggerVerbosity.Minimal);
|
var logger = CreateLogger("FORCECONSOLECOLOR", LoggerVerbosity.Minimal, output);
|
||||||
return logger;
|
return logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ILogger CreateLogger(string parameters, LoggerVerbosity loggerVerbosity)
|
private static ILogger CreateLogger(string parameters, LoggerVerbosity loggerVerbosity, TextWriter output)
|
||||||
{
|
{
|
||||||
string[]? args = [];
|
//var logger = TerminalLogger.CreateTerminalOrConsoleLogger(args, supportsAnsi, outputIsScreen, originalConsoleMode);
|
||||||
bool supportsAnsi = true;
|
var terminal = new Terminal(output);
|
||||||
bool outputIsScreen = true;
|
var logger = new TerminalLogger(terminal);
|
||||||
uint? originalConsoleMode = 0x0007;
|
var field = typeof(TerminalLogger).GetField("_manualRefresh", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||||
|
Guard.Against.Null(field, nameof(field));
|
||||||
var logger = TerminalLogger.CreateTerminalOrConsoleLogger(args, supportsAnsi, outputIsScreen, originalConsoleMode);
|
field.SetValue(logger, false);
|
||||||
|
|
||||||
logger.Parameters = parameters;
|
logger.Parameters = parameters;
|
||||||
logger.Verbosity = loggerVerbosity;
|
logger.Verbosity = loggerVerbosity;
|
||||||
|
|||||||
@@ -19,8 +19,9 @@
|
|||||||
<Publicize Include="Microsoft.CodeAnalysis.Workspaces" />
|
<Publicize Include="Microsoft.CodeAnalysis.Workspaces" />
|
||||||
<Publicize Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" />
|
<Publicize Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" />
|
||||||
<Publicize Include="Microsoft.VisualStudio.Shared.VSCodeDebugProtocol" IncludeCompilerGeneratedMembers="false" />
|
<Publicize Include="Microsoft.VisualStudio.Shared.VSCodeDebugProtocol" IncludeCompilerGeneratedMembers="false" />
|
||||||
<Publicize Include="Microsoft.Build" MemberPattern="^Microsoft.Build.Logging\.TerminalLogger\..*" />
|
<Publicize Include="Microsoft.Build" MemberPattern="^Microsoft\.Build\.Logging\.(TerminalLogger|Terminal)\..*" />
|
||||||
<DoNotPublicize Include="Microsoft.CodeAnalysis.Workspaces:System.Linq.RoslynEnumerableExtensions" />
|
<DoNotPublicize Include="Microsoft.CodeAnalysis.Workspaces:System.Linq.RoslynEnumerableExtensions" />
|
||||||
|
<DoNotPublicize Include="Microsoft.Build:Microsoft.CodeAnalysis.ICollectionExtensions" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user