-
Notifications
You must be signed in to change notification settings - Fork 412
Description
Visual Studio Version:
16.6
Expected Behavior:
- Newly created projitems files contain a single line.
<Compile Include="$(MSBuildThisFileDirectory)**\*$(DefaultLanguageSourceExtension)" />-
IDE does not add new entries to the file when adding files to the shared project that uses globs.
-
IDE does not change projitems file when a file is removed using Solution Explorer UI
-
IDE does not change projitems files when a file is moved from one shared project to another
-
The IDE can open projitems file for editing
Actual Behavior:
-
Newly created shared project's projitems file does not have the glob include.
-
Adding a new file in the IDE to a shared project that contains entry with a glob adds an explicit entry.
-
Removing the file in IDE removes the item glob and breaks the project.
-
Moving files between shared projects removes the item glob from source project and breaks the project.
-
Can't open projitems file for editing in VS.
-
Cannot use Build Current Project
Scenarios
-
Merge conflicts
Listing all items in the projitems file results in frequent merge conflicts that need to be resolved.
-
Slow project reloading
Changing a branch to one where the project contains different files leads to project reloading.
-
Keeping the list of files in sync with the actual directory content adds maintenance cost
-
Adding a link to an existing file to a shared project.
Because "add a link to an existing file" feature is not available, one needs to edit the projitems file manually. Due to [5] that's also not possible in VS. The file needs to be open and edited in an external editor. Once the linked
<Compile>item is added and the file is saved the VS reloads the project. One needs to also make sure that any unsaved changes in the file made by VS were saved, otherwise they would be discarded.