<p>I have C++ project (VS2005) which includes header file with version number in #define directive. Now I need to include exactly the same number in twin C# project. What is the best way to do it?</p>

<p>I'm thinking about including this file as a resource, then parse it at a runtime with regex to recover version number, but maybe there's a better way, what do you think?</p>

<p>I cannot move version outside .h file, also build system depends on it and the C# project is one which should be adapted.</p>

MSDN tells us:
The #define directive cannot be used
  to declare constant values as is
  typically done in C and C++. Constants
  in C# are best defined as static
  members of a class or struct. If you
  have several such constants, consider
  creating a separate "Constants" class
  to hold them.
You can create library using managed C++ that includes class - wrapper around your constants. Then you can reference this class from C# project. Just don't forget to use
readonly < type >
instead of
const < type >
for your constants declaration :)