. СЕТЬ является платформой. Это может использоваться со многих языков (VB.NET, C#, IronPython, шиканье, и т.д.)
.NET всегда выполняется, как интерпретируется, и не Вы не можете включать 'VM' в .exe. Любому пользователю, желающему выполнять Ваше приложение.NET, нужно было установить платформу.
__VA_OPT__
(C++ 2a) должно быть более надежным, например: от http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0306r2.html
канонический вариант использования VA_OPT для дополнительного разделителя:
#define LOG(msg, ...) printf(msg __VA_OPT__(,) __VA_ARGS__)