Building with MSVS

Hi there,

In a first attempt to create a plugin using the the generator, I get following error:

11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: The command "setlocal
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: cd C:\build-tmp\target\vst-temp-files\build\bin
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:\build-tmp\target\vst-temp-files\build\bin\Debug\moduleinfotool.exe -create -version -path C:\build-tmp/build/VST3/Debug/g_vst1.vst3 -output C:\build-tmp/build/VST3/Debug/g_vst1.vst3/Contents/moduleinfo.json
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: setlocal
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: cd C:\build-tmp\target\vst-temp-files\build\bin
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: echo [SMTG] Validator started...
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:\build-tmp\target\vst-temp-files\build\bin\Debug\validator.exe C:\build-tmp/build/VST3/Debug/g_vst1.vst3/Contents/x86_64-win/g_vst1.vst3
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: echo [SMTG] Validator finished.
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
11>d:\apps\msvs\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :VCEnd" exited with code 1.

Try as I might, I can’t get past this. Everything seems to compile fine and my guess is that this is a post build step (though no clue how to verify this / where is this post build step defined).

Any ideas? Also, for a public SDK, would be nice to get a more informative message of what’s wrong.

Thanks

Also, can confirm that validator run was ok. Here is validator output when run indpendently:

* Loading module...

        VST3/Debug/g_vst1.vst3/Contents/x86_64-win/g_vst1.vst3

* Scanning classes...

  Factory Info:
        vendor =
        url =
        email =

  Class Info 0:
        name = GVst
        category = Audio Module Class
        subCategories = Fx
        version = 1.0.0.1
        sdkVersion = VST 3.7.5
        cid = 0CDBB66985D548A9BFD8371909D24BB3

  Class Info 1:
        name = GVstController
        category = Component Controller Class
        subCategories =
        version = 1.0.0.1
        sdkVersion = VST 3.7.5
        cid = 038E7FA9629A4EAA8541B88918E8952C

* Checking snapshots...

Info: No snapshots in Bundle.

* Creating tests...

* Running tests...

-------------------------------------------------------------
TestSuite : GVst
-------------------------------------------------------------

-------------------------------------------------------------
TestSuite : General Tests
-------------------------------------------------------------

[Scan Editor Classes]
Info:  ===Scan Editor Classes ====================================
Info:  This component has an edit controller class
Info:     Controller CID: {038E7FA9-629A-4EAA-8541-B88918E8952C}
[Succeeded]

[Scan Buses]
Info:  ===Scan Buses ====================================
Info:  => Audio Buses: [1 In(s) => 1 Out(s)]
Info:       In [0]: "Stereo In" (Main-Default Active)
Info:       Out[0]: "Stereo Out" (Main-Default Active)
Info:  => Event Buses: [0 In(s) => 0 Out(s)]
[Succeeded]

[Scan Parameters]
Info:  ===Scan Parameters ====================================
Info:  This component does not export any parameters!
[Succeeded]

[MIDI Mapping]
Info:  ===MIDI Mapping ====================================
Info:  No MIDI Mapping interface supplied!
[Succeeded]

[MIDI Learn]
Info:  ===MIDI Learn ====================================
Info:  No MIDI Learn interface supplied!
[Succeeded]

[Scan Units]
Info:  ===Scan Units ====================================
Info:  This component has no units.
[Succeeded]

[Scan Programs]
Info:  ===Scan Programs ====================================
Info:  This component does not export any programs.
[Succeeded]

[Terminate/Initialize]
Info:  ===Terminate/Initialize ====================================
[Succeeded]

[Check Unit Structure]
Info:  ===Check Unit Structure ====================================
Info:  This component does not support IUnitInfo!
[Succeeded]

[Valid State Transition 32bits]
Info:  ===Valid State Transition 32bits ====================================
[Succeeded]

[Valid State Transition 64bits]
Info:  ===Valid State Transition 64bits ====================================
Info:  64bit Audio Processing not supported.
[Succeeded]

[Bus Consistency]
Info:  ===Bus Consistency ====================================
[Succeeded]

[Bus Activation]
Info:  ===Bus Activation ====================================
Info:     Bus Activation: Input Audio Bus (0) (kMain)
Info:     Bus Activation: Output Audio Bus (0) (kMain)
[Succeeded]

[Check Audio Bus Arrangement]
Info:  ===Check Audio Bus Arrangement ====================================
Info:     Check Input Audio Bus Arrangement (0)
Info:     Check Output Audio Bus Arrangement (0)
[Succeeded]

[SideChain Arrangement]
Info:  ===SideChain Arrangement ====================================
[Succeeded]

[Suspend/Resume]
Info:  ===Suspend/Resume ====================================
[Succeeded]

[Note Expression]
Info:  ===Note Expression ====================================
Info:  No Note Expression interface supplied!
[Succeeded]

[Keyswitch]
Info:  ===Keyswitch ====================================
Info:  No Keyswitch interface supplied!
[Succeeded]

[ProcessContext Requirements]
Info:  ===ProcessContext Requirements ====================================
Info:  ProcessContextRequirements:
Info:   - None
[Succeeded]

-------------------------------------------------------------
TestSuite : Single Precision (32 bit) Tests
-------------------------------------------------------------

[Process Test]
[Succeeded]

[Process function running in another thread]
Info:  ===Process function running in another thread ====================================
[Succeeded]

[Silence Flags]
Info:  ===Silence Flags ====================================
[Succeeded]

[Silence Processing]
Info:  ===Silence Processing ====================================
[Succeeded]

[Parameters Flush (no Buffer)]
Info:  ===Parameters Flush (no Buffer) ====================================
[Succeeded]

[Parameters Flush 2 (only numChannel==0)]
Info:  ===Parameters Flush 2 (only numChannel==0) ====================================
[Succeeded]

[Parameters Flush 2 (no Buffer, no parameter change)]
Info:  ===Parameters Flush 2 (no Buffer, no parameter change) ====================================
[Succeeded]

[Variable Block Size]
Info:  ===Variable Block Size ====================================
[Succeeded]

[Process Format]
Info:  ===Process Format ====================================
Info:  ***Tested Sample Rates***
Info:        22050 Hz - processed successfully!
Info:        32000 Hz - processed successfully!
Info:        44100 Hz - processed successfully!
Info:        48000 Hz - processed successfully!
Info:        88200 Hz - processed successfully!
Info:        96000 Hz - processed successfully!
Info:       192000 Hz - processed successfully!
Info:       384000 Hz - processed successfully!
Info:    1234.5678 Hz - processed successfully!
Info:    12345.678 Hz - processed successfully!
Info:    123456.78 Hz - processed successfully!
Info:    1234567.8 Hz - processed successfully!
[Succeeded]

[Parameter Bypass persistence]
Info:  ===Parameter Bypass persistence ====================================
Info:  This plugin does not have a bypass parameter!!!
[Succeeded]

[In: Stereo: 2 Channels, Out: Stereo: 2 Channels]
Info:  ===In: Stereo: 2 Channels, Out: Stereo: 2 Channels ====================================
[Succeeded]

[In: Mono: 1 Channels, Out: Mono: 1 Channels]
Info:  ===In: Mono: 1 Channels, Out: Mono: 1 Channels ====================================
[Succeeded]

[Accuracy: Block, 1 Parameters, Change every100 Samples]
Info:  ===Accuracy: Block, All Parameters, Change every100 Samples ====================================
Info:  No Parameters present.
[Succeeded]

[Accuracy: Sample, 1 Parameters, Change every100 Samples]
Info:  ===Accuracy: Sample, All Parameters, Change every100 Samples ====================================
Info:  No Parameters present.
[Succeeded]

-------------------------------------------------------------
TestSuite : Double Precision (64 bit) Tests
-------------------------------------------------------------

[Process Test]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Process function running in another thread]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Silence Flags]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Silence Processing]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Parameters Flush (no Buffer)]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Parameters Flush 2 (only numChannel==0)]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Parameters Flush 2 (no Buffer, no parameter change)]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Variable Block Size]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Process Format]
Info:  64bit Audio Processing not supported.
[Succeeded]

[Parameter Bypass persistence]
Info:  64bit Audio Processing not supported.
[Succeeded]

[In: Stereo: 2 Channels, Out: Stereo: 2 Channels]
Info:  ===In: Stereo: 2 Channels, Out: Stereo: 2 Channels ====================================
Info:  64bit Audio Processing not supported.
[Succeeded]

[In: Mono: 1 Channels, Out: Mono: 1 Channels]
Info:  ===In: Mono: 1 Channels, Out: Mono: 1 Channels ====================================
Info:  64bit Audio Processing not supported.
[Succeeded]

[Accuracy: Block, 1 Parameters, Change every100 Samples]
Info:  ===Accuracy: Block, All Parameters, Change every100 Samples ====================================
Info:  No Parameters present.
Info:  64bit Audio Processing not supported.
[Succeeded]

[Accuracy: Sample, 1 Parameters, Change every100 Samples]
Info:  ===Accuracy: Sample, All Parameters, Change every100 Samples ====================================
Info:  No Parameters present.
Info:  64bit Audio Processing not supported.
[Succeeded]

-------------------------------------------------------------
Result: 47 tests passed, 0 tests failed
-------------------------------------------------------------

I think that the command that fails is (removed absolute paths):


.\bin\Debug\moduleinfotool.exe -create -version -path .\VST3\Debug\MyPlugin.vst3 -output .\VST3\Debug\MyPlugin.vst3\Contents\moduleinfo.json

Note that version seems to be required here, so while the above fails, I can manually call moduleinfotool like this and succeed:

.\bin\Debug\moduleinfotool.exe -create -version 1.0.0 -path .\VST3\Debug\MyPlugin.vst3 -output .\VST3\Debug\MyPlugin.vst3\Contents\moduleinfo.json

But the generated scripts don’t include version string when calling. So moduleinfotool fails causing above error. I might be wrong though - still a noob.

If this is the problem, how do I overcome it? What can I change so I can build the plugin?

Hey this is old, but I’m just popping in to say that this question was what led me to solve a similar problem I was having trying to build a plugin I started making in an earlier version of the SDK. I was getting a popular post-build error and every solution was suggesting a solution that didn’t apply. Adding the version manually into the post-build script where it calls the moduleinfotool in the project properties got it to build again.