ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
1341490 Топик полностью
=AlexD= (17.08.2023 14:31, просмотров: 92) ответил maleon на Заело, не мог остановиться. И по граблям, и по костылям, и с завязанными глазами, куда нам от наших кактусов?
А чем вас этот вариант не устроил? 
Wasn't happy with the other solutions for my use case so coded up a slightly hacky solution that seems to fit the original request better; a constant in one file that can be built into both a C# and a C++ project...
Version information in a .cs file, in a common location.
Like this:

// Version.cs
public static class MyAppVersion
{
//build
public static string Number = "1.0";
public static string Phase = "Alpha";
//configuration (these are the build constants I use, substitute your own)
#if BUILD_SHIPPING
public static string Configuration = "Shipping";
#elif BUILD_DEVELOPMENT
public static string Configuration = "Development";
#elif BUILD_DEBUG
public static string Configuration = "Debug";
#else
"build type not defined"
#endif
}

Include in C# project using Add Existing Item... [Add As Link]
Include in C++ project (in a .cpp file) with a #include
Like this:

//include version information into a .cpp
#define class namespace
#define public
#define static
#define string const char*
#include "..\..\Version.cs" //or to where-ever your file is
;
#undef class
#undef public
#undef static
#undef string

Reference in C# with: MyAppVersion.Number
Reference in C++ with: MyAppVersion::Number
надо придумать объяснение этому мудизму, иначе рехнуться можно