Binary Location without 'App/' with MSVS


I am building an Audio Application and want to define the ‘Binary Location’ in the Projucer. With XCode the behaviour is as expected: the app is copied to that directory.

However, with Visual Studio 2019 there’s an additional App/ folder, so the .exe is moved to ‘TargetDirectory/App/’.

Is there any way to get rid of that App/ appendix, without modifying the project settings within Visual Studio?

Projucer always adds an extra folder:

where getName() is defined as:

So you would have to change Projucer.

@McMartin Thanks for taking a deeper look!

@JUCE team: is there any reason for MSVS being inconsistent with the rest? (with rest I actually mean XCode :wink: did not check the rest)

In the case of a GUI Application project, that extra “App/” folder is indeed unnecessary, but it is required in the case of an Audio Plug-In project. Without the extra folders, the following files would conflict/overwrite each others:

  • <targetDirectory>/{AAX,RTAS,VST,VST3}/<projectName>.exp
  • <targetDirectory>/{AAX,RTAS,Standalone Plugin,VST,VST3}/<projectName>.ilk
  • <targetDirectory>/{AAX,RTAS,Shared Code,VST,VST3}/<projectName>.lib
  • <targetDirectory>/{AAX,RTAS,Standalone Plugin,VST,VST3}/<projectName>.pdb

yes, it’s needed for multi-project solutions, but not sure why Projucer is concatenating only for those special solutions… it happens for console, GUI or library projects also where only one output is generated.

1 Like

Indeed. We’ve specifically asked JUCE to generate a console app when it chooses to insert that extra unwanted subdirectory; the Jucer knows we’re not making a plugin, or a GUI app, because we’ve told it so. This extra directory is unhelpful and inconsistent with other platforms.