microsoft / microsoft/react-native-windows

Code Cleanup: Targets and Props use `$(ProjectDir)` which is not common accross C# and C++

Open
#5,036 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Code Cleanup enhancement Workstream: ES Compliance SFI
Dominant language
C++
Stars
17.3k
Forks
1.2k
Avg merge
1d 13h
Merged PRs (30d)
33

Description

Our props and targets use $(ProjectDir) in a bunch of places. This is not a property that is defined by the C# project system. The UWP C# targets happen to add it. This makes our props not able to use it, so as a workaround we ahve defined it to be:
<ProjectDir Condition="'$(ProjectDir)' == ''">$(MSBuildProjectDirectory)</ProjectDir>
This issue tracks updating our props and targets to not use C++ targets derived ProjectDir but use the built-in msbuild property

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Search the repository's props and targets files for uses of $(ProjectDir) and review the workaround that defines it from $(MSBuildProjectDirectory). Replace the derived property usage with the built-in MSBuild property throughout the affected files, then verify the C# and C++ project targets still evaluate correctly.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.