tom-englert/Wax

Wax does not find content files in .NET standard project

Closed this issue · 6 comments

In a relatively large solution I have a single project with most of the resources and its target platform is .NET standard so that it can be shared across all the supported platforms.

The resulting DLL and its satelite assemblies are detected correctly by wax in this project.

But if I add folder with content files into this .NET standard project (Content, Copy if newer) they do not get discovered in the wax file mappings (5).

Secondly the project is greyed out in projects to install (3) and I could not find any information about this. What does it mean?

BTW MSBUILD recognises the content files correctly and delivers them to the proper release folders.

If I take the same file and place it in a standard .NET 4.5 project inside the same solution/build it resolves perfectly.

  1. Can you debug it and see what files are listed by VisualStudio for the ContentFiles output group?
    It should be here: (line 396)

    [NotNull, ItemNotNull]
    private static IReadOnlyCollection<ProjectOutput> GetProjectOutputForGroup([NotNull] Project project, [NotNull] EnvDTE.OutputGroup outputGroup, [NotNull] string binaryTargetDirectory)
    {
    var canonicalName = outputGroup.CanonicalName;
    if (!Enum.TryParse(canonicalName, out BuildFileGroups buildFileGroup))
    throw new InvalidOperationException("Unknown output group: " + canonicalName);
    var fileNames = outputGroup.GetFileNames();
    var projectOutputForGroup = fileNames.Select(fileName => new ProjectOutput(project, fileName, buildFileGroup, binaryTargetDirectory));

  2. If a project is grayed, it means it is already selected implicitly because it's a reference of something else you have selected, so you don't have to check this.

I do not know how to debug visual studio extensions. But I made the simplest reproducible solution - see the attachment.

Highlighted problem printscreen - bitmap file from regular .net gets detected, same file from .NET standard 2.0 is ignored:
Captureprintscreen

Solution archive:
WindowsFormsApp35.zip

@gitkrasty , here's how : https://bideveloperextensions.github.io/features/VSIXextensionmodel/

@tom-englert : as I feel responsible for this zone, I'll investigate tomorrow. .Net Standard surely changes many things in how .csproj files are handled.

@gitkrasty which version of VS are you using? I tried with 16.1.5 and it works fine.

latest VS 2017, ver. 15.9.13

So I installed the amounts of gb of VS 2019 tonight and can confirm that it also works in my 16.1.6.
The problem is burried somewhere in VS 2017.