dotnet / dotnet/msbuild

TargetFramework doesn't appended when using arguments /p:Outdir="absolutePath"

Open
#4,630 2 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

### Steps to reproduce

Example of a project sample:

Project file
```xml


netstandard1.0;net35

MyNamespace
MyNamespace.Interfaces

```

Directory contents:
```
/
- IInterface.cs
```

Command line
```
msbuild interfaces\Interfaces.csproj /p:Outdir=c:\build\out /p:GenerateProjectSpecificOutputFolder=True
```
### Expected behavior
c:\build\out contains folder Interfaces with next structure:
```
C:\build\out\Interfaces>dir /s
Volume in drive C has no label.
Volume Serial Number is F685-B403

Directory of C:\build\out\Interfaces

19.08.2019 01:30 .
19.08.2019 01:30 ..
19.08.2019 01:30 net35
19.08.2019 01:30 netstandard1.0
0 File(s) 0 bytes

Directory of C:\build\out\Interfaces\net35

19.08.2019 01:30 .
19.08.2019 01:30 ..
19.08.2019 01:18 3 584 MyNamespace.Interfaces.dll
19.08.2019 01:18 232 MyNamespace.Interfaces.pdb
2 File(s) 3 816 bytes

Directory of C:\build\out\Interfaces\netstandard1.0

19.08.2019 01:30 .
19.08.2019 01:30 ..
19.08.2019 01:18 14 914 MyNamespace.Interfaces.deps.json
19.08.2019 01:18 4 096 MyNamespace.Interfaces.dll
19.08.2019 01:18 232 MyNamespace.Interfaces.pdb
3 File(s) 19 242 bytes

Total Files Listed:
5 File(s) 23 058 bytes
8 Dir(s) 22 367 154 176 bytes free
```

### Actual behavior
All files move to Interfaces directory:
```
C:\build\out\Interfaces>dir /s
Volume in drive C has no label.
Volume Serial Number is F685-B403

Directory of C:\build\out\Interfaces

19.08.2019 01:31 .
19.08.2019 01:31 ..
19.08.2019 01:31 14 914 MyNamespace.Interfaces.deps.json
19.08.2019 01:18 3 584 MyNamespace.Interfaces.dll
19.08.2019 01:18 232 MyNamespace.Interfaces.pdb
3 File(s) 18 730 bytes

Total Files Listed:
3 File(s) 18 730 bytes
2 Dir(s) 22 367 391 744 bytes free
```

### Environment data
`msbuild /version` output:
```
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

15.9.21.664
```
and
```
Microsoft (R) Build Engine version 16.3.0-preview-19377-01+dd8019d9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

16.300.19.37701
```
[interfaces.zip](https://github.com/microsoft/msbuild/files/3513642/interfaces.zip)

OS info:
C:\build\out\Interfaces>ver

Microsoft Windows [Version 10.0.17763.615]

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the issue with the supplied interfaces.csproj sample and the msbuild command using /p:Outdir and GenerateProjectSpecificOutputFolder. Start by tracing how MSBuild handles these output properties for the two TargetFrameworks, then add a regression test covering the command-line case. Done means the output contains Interfaces/net35 and Interfaces/netstandard1.0 with the corresponding build files.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.