Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dotnet pack arguments not splitting on semicolon #27177

Closed
curt-w opened this issue Aug 15, 2022 · 2 comments
Closed

dotnet pack arguments not splitting on semicolon #27177

curt-w opened this issue Aug 15, 2022 · 2 comments
Labels
untriaged Request triage from a team member

Comments

@curt-w
Copy link

curt-w commented Aug 15, 2022

Hope I'm at the right spot. I've noticed breaking change on how dotnet pack is handling build properties being passed. While this became obvious from my DevOps pipeline, I've extracted the commands that are being executed and identified what has changed in the pipeline between when it was working (yesterday) and when it is not (today).

The only change between executions is the version of MSBuild being used - 17.2.0+41abc5629 vs 17.3.0+92e077650.

It seems from the semicolon handling has changed for build properties being passed in, and is being converted to %3B. When multiple properties are sent in, this results in the entire string being assigned to the first property. In the below example, I went from assigning two individual properties (Configuration=release, Authors="My Company") to it being treated as one property (Configuration=release%3D Author="My Company")

The following command is executed:
"C:\Program Files\dotnet\dotnet.exe" pack D:\a\1\s\Core\Core.csproj --output D:\a\1\a\Package --no-build "/p:Configuration=release;Authors="My company";"

Yesterday when the command executed in pipeline, the following:
Microsoft (R) Build Engine version 17.2.0+41abc5629 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 8/14/2022 7:26:22 PM.
0>Process = "C:\Program Files\dotnet\dotnet.exe"
MSBuild executable path = "C:\Program Files\dotnet\sdk\6.0.302\MSBuild.dll"
Command line arguments = "C:\Program Files\dotnet\sdk\6.0.302\MSBuild.dll -maxcpucount -verbosity:m -target:pack -property:PackageOutputPath=D:\a\1\a\Package -property:NoBuild=true -verbosity:detailed -property:Configuration=release;Authors="My company";"

Today when the command executes in pipeline, the following:
MSBuild version 17.3.0+92e077650 for .NET
Build started 8/15/2022 6:31:03 PM.
0>Process = "C:\Program Files\dotnet\dotnet.exe"
MSBuild executable path = "C:\Program Files\dotnet\sdk\6.0.400\MSBuild.dll"
Command line arguments = "C:\Program Files\dotnet\sdk\6.0.400\MSBuild.dll -maxcpucount -verbosity:m -target:pack -property:PackageOutputPath=D:\a\1\a\Package -property:NoBuild=true -verbosity:detailed --property:Configuration=release%3BAuthors="My company"%3B"

@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged Request triage from a team member label Aug 15, 2022
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@baronfel
Copy link
Member

Hi, thanks for the report on this. I believe this is a duplicate of #27059, which has a PR out that we are seeking merge approval for.

@baronfel baronfel closed this as not planned Won't fix, can't repro, duplicate, stale Aug 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
untriaged Request triage from a team member
Projects
None yet
Development

No branches or pull requests

2 participants