Skip to content

Commit d7c9d45

Browse files
committed
Recognize binlog args
1 parent 9f69d76 commit d7c9d45

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/Cli/dotnet/Commands/Publish/PublishCommand.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ public static CommandBase FromParseResult(ParseResult parseResult, string? msbui
3535
"--property:_IsPublishing=true" // This property will not hold true for MSBuild /t:Publish or in VS.
3636
};
3737

38-
string[] fileArgs = parseResult.GetValue(PublishCommandParser.SlnOrProjectOrFileArgument) ?? [];
38+
string[] args = parseResult.GetValue(PublishCommandParser.SlnOrProjectOrFileArgument) ?? [];
39+
40+
LoggerUtility.SeparateBinLogArguments(args, out var binLogArgs, out var nonBinLogArgs);
3941

4042
CommonOptions.ValidateSelfContainedOptions(parseResult.HasOption(PublishCommandParser.SelfContainedOption),
4143
parseResult.HasOption(PublishCommandParser.NoSelfContainedOption));
@@ -46,13 +48,15 @@ public static CommandBase FromParseResult(ParseResult parseResult, string? msbui
4648

4749
bool noRestore = noBuild || parseResult.HasOption(PublishCommandParser.NoRestoreOption);
4850

49-
if (fileArgs is [{ } arg] && VirtualProjectBuildingCommand.IsValidEntryPointPath(arg))
51+
if (nonBinLogArgs is [{ } arg] && VirtualProjectBuildingCommand.IsValidEntryPointPath(arg))
5052
{
5153
if (!parseResult.HasOption(PublishCommandParser.ConfigurationOption))
5254
{
5355
msbuildArgs.Add("-p:Configuration=Release");
5456
}
5557

58+
msbuildArgs.AddRange(binLogArgs);
59+
5660
return new VirtualProjectBuildingCommand(
5761
entryPointFileFullPath: Path.GetFullPath(arg),
5862
msbuildArgs: msbuildArgs,
@@ -68,14 +72,14 @@ public static CommandBase FromParseResult(ParseResult parseResult, string? msbui
6872

6973
ReleasePropertyProjectLocator projectLocator = new(parseResult, MSBuildPropertyNames.PUBLISH_RELEASE,
7074
new ReleasePropertyProjectLocator.DependentCommandOptions(
71-
fileArgs,
75+
nonBinLogArgs,
7276
parseResult.HasOption(PublishCommandParser.ConfigurationOption) ? parseResult.GetValue(PublishCommandParser.ConfigurationOption) : null,
7377
parseResult.HasOption(PublishCommandParser.FrameworkOption) ? parseResult.GetValue(PublishCommandParser.FrameworkOption) : null
7478
)
7579
);
7680
msbuildArgs.AddRange(projectLocator.GetCustomDefaultConfigurationValueIfSpecified());
7781

78-
msbuildArgs.AddRange(fileArgs ?? []);
82+
msbuildArgs.AddRange(args ?? []);
7983

8084
msbuildArgs.Insert(0, "-target:Publish");
8185

test/dotnet.Tests/CommandTests/Run/RunFileTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -861,14 +861,16 @@ public void Publish_Options()
861861
var artifactsDir = VirtualProjectBuildingCommand.GetArtifactsPath(programFile);
862862
if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true);
863863

864-
new DotnetCommand(Log, "publish", "Program.cs", "-c", "Debug", "-p:PublishAot=false")
864+
new DotnetCommand(Log, "publish", "Program.cs", "-c", "Debug", "-p:PublishAot=false", "-bl")
865865
.WithWorkingDirectory(testInstance.Path)
866866
.Execute()
867867
.Should().Pass();
868868

869869
new DirectoryInfo(artifactsDir).Sub("publish/debug")
870870
.Should().Exist()
871871
.And.HaveFile("Program.deps.json");
872+
873+
new DirectoryInfo(testInstance.Path).File("msbuild.binlog").Should().Exist();
872874
}
873875

874876
[PlatformSpecificFact(TestPlatforms.AnyUnix), UnsupportedOSPlatform("windows")]

0 commit comments

Comments
 (0)