Skip to content

Wildcards are not supported in vc projects, they have been replaced with explicit files #6214

Closed

Description

Environment

Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
Windows Terminal version (if applicable):

Any other software?  Visual Studio 16.6.0

Steps to reproduce

I recently upgraded VS to 16.6.0 and this pops up before build. It seems the VS is not happy with the current vcproj file.

Expected behavior

Actual behavior

Activity

  1. ghost added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on May 27, 2020
  2. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on May 27, 2020
  3. zadjii-msft commented on May 27, 2020

    @zadjii-msft
    Member

    Ho boy, they sure aren't, and we're learning this the hard way. We've got a discussion out with the VS team about this most recent change, so I guess we'll use this thread to track it.

    For now, I think the mitigation is to just not check in any the changes that VS makes to our projects silently, until we can figure out a better mitigation going forward.

    Dustin L. Howett (@DHowett)'s driving this with that team so I'll stick him as the assignee.

  4. added
    Area-BuildIssues pertaining to the build system, CI, infrastructure, meta
    Issue-TaskIt's a feature request, but it doesn't really need a major design.
    Product-MetaThe product is the management of the products.
    on May 27, 2020
  5. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on May 27, 2020
  6. removed
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on May 27, 2020
  7. WSLUser commented on May 27, 2020

    @WSLUser
    Contributor

    Isn't being explicit technically more performant? Instead of having the system look for everything, you're telling it exactly where everything is.

  8. zadjii-msft commented on May 27, 2020

    @zadjii-msft
    Member

    Yea but unfortunately, the Resources.resw localization in our CI actually relies on the fact that there are wildcards in the paths, because we don't know which directories for which languages exist quite yet. There's a much bigger discussion happening internally.

  9. ZhilkinSerg commented on Jun 2, 2020

    @ZhilkinSerg

    We've got a discussion out with the VS team about this most recent change, so I guess we'll use this thread to track it.

    Can't it be an optional thing? It is a real drawback for multi-platform projects - e.g. we do not have to list newly added source files in Makefile or CMakeLists.txt for https://github.com/CleverRaven/Cataclysm-DDA/, but will have to do that now for VS projects? Basically, any contributor, who adds new source files, will have to fiddle with VS solutions and add new files there, even when they are not on a Windows machine.

  10. DHowett commented on Jun 2, 2020

    @DHowett
    Member

    It's more like "we just need to do the work to remove the wildcards" than "it can be made optional." You're preaching to the choir here: I am upset about this change too. It violates everyone's mental model for how MSBuild should work, but... here we are.

    It appears as though wildcards were never supported for vcxproj files and they just happened to work. I was pointed to the official documentation on the matter. 😦

    Do not use this approach if you intend to edit the project file later by using the Visual Studio IDE. If you create a .vcxproj file manually, the Visual Studio IDE might not be able to edit or load it, especially if the project uses wildcards in project items.
    Walkthrough: Using MSBuild to Create a Visual C++ Project

    The Visual Studio C++ project system currently does not support wildcards in project items.
    .vcxproj and .props file structure

  11. Lordmau5 commented on Jun 3, 2020

    @Lordmau5

    I'm happy to see that there is a thread about this.

    Can we please have the option for this in the settings for VS?
    I have a project in which wildcards work perfectly fine and this update makes it so I have to effectively set the files to read-only.


    It appears as though wildcards were never supported for vcxproj files and they just happened to work. I was pointed to the official documentation on the matter. 😦

    I can understand as to why it would not be officially supported / endorsed - it could potentially break certain projects' workflows.
    However, not all projects are the same and what doesn't work for one can still work for another.

  12. DHowett commented on Jun 3, 2020

    @DHowett
    Member

    Can we please have the option for this in the settings for VS?

    You're asking the wrong people, friend. Best I can do is tell them that there's some community unrest because of this change. 😄

  13. Lordmau5 commented on Jun 3, 2020

    @Lordmau5

    Oh I just realized this is in the MS Terminal repository, my apologies.

    And yeah - community unrest is indeed present.
    Again, it might not be as vocal as it could be, but I do feel this shouldn't just ... outright be thrown out of the window...

  14. alabuzhev commented on Jun 3, 2020

    @alabuzhev
    Contributor

    Best I can do is tell them that there's some community unrest because of this change

    Please do - maybe reports from MS teams will get more attention than from us mere mortals.
    Is there any open issue for this on the VS bugtracker we can comment / vote for?
    Of course, it was never officially supported, but it worked nicely for years and now a lot of projects are broken :(

  15. added a commit that references this issue on Jun 8, 2020
    f484bc4
  16. ghost added
    In-PRThis issue has a related PR
    on Jun 8, 2020
  17. ghost removed
    In-PRThis issue has a related PR
    on Jun 8, 2020
  18. added a commit that references this issue on Jun 8, 2020
    e3ee583
  19. ghost added
    Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.
    on Jun 8, 2020
  20. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Jun 8, 2020
  21. added a commit that references this issue on Jun 24, 2020
    fdb2fe5
  22. added a commit that references this issue on Sep 5, 2020
    0b3beb7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Area-BuildIssues pertaining to the build system, CI, infrastructure, metaIssue-TaskIt's a feature request, but it doesn't really need a major design.Needs-Tag-FixDoesn't match tag requirementsProduct-MetaThe product is the management of the products.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions