Bug: Copy Local (Private) not respected for project references
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 665
- Forks
- 134
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 32
Description
Description
The target CsWinRTRemoveWinMDReferences removes the project referenced .winmds from ReferencePath and puts their implementation (if present) in the ReferenceCopyLocalPaths. This does not respect the "Copy Local" (Private) value as set for the project reference.
Steps To Reproduce
- Create authoring project A
- Create consuming project B
- Reference A from B
- Set "Copy Local" -> "No" in VS (or
<Private>false</Private>in theProjectReference) - Build, note that the implementation binary A will be placed in the output for B
Expected Behavior
Outputs of project A should not be placed in the outputs of project B when these properties are set.
Version Info
CsWinRT 2.1.6
Additional Context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the CsWinRTRemoveWinMDReferences target and trace how referenced .winmd implementations are added to ReferenceCopyLocalPaths. Check how the ProjectReference Private value is handled, then reproduce with authoring project A and consuming project B using false. Done means A's implementation binary is absent from B's output when Copy Local is disabled.
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
- 48/100