Normalize project variables to on-disk case
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 133
Description
### Steps to reproduce
Project file
```xml
```
Command line
```
s:\msbuild>dir TEst.proj
Volume in drive S is Source
Volume Serial Number is E68B-B87E
Directory of s:\msbuild
08/28/2018 01:45 PM 231 TEst.proj
1 File(s) 231 bytes
0 Dir(s) 146,367,778,816 bytes free
s:\msbuild>msbuild /nologo teST.PRoj
MSBuildProjectFullPath: s:\msbuild\teST.PRoj
MSBuildProjectName: teST
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.47
s:\msbuild>msbuild /nologo TEst.proj
MSBuildProjectFullPath: s:\msbuild\TEst.proj
MSBuildProjectName: TEst
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.48
```
### Expected behavior
`$(MSBuildProjectName)` and (more importantly) derived properties like `AssemblyName` in the default .NET Core SDK setup match the case on disk.
### Actual behavior
They match the case specified on the command line.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the behavior with the project file shown in the issue and the three command-line casing variants. Trace where MSBuildProjectFullPath and MSBuildProjectName are initialized, then verify that they and derived properties such as AssemblyName preserve the on-disk case rather than the command-line case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100