Files
CMake/Help/release/dev/vs-csharp-support.rst
Michael Stürmer 90cb408323 VS: improve handling of source files with special extensions in .csproj
Mainly <Link> and <DependentUpon> tags are added to connect generated
and manually edited files. Special file extensions that are take care
of are:

 - .Designer.cs
 - .xaml.cs
 - .settings
 - .resx
 - .xaml
2017-01-18 15:51:22 +01:00

35 lines
1.6 KiB
ReStructuredText

vs-native-csharp-support
------------------------
* The :ref:`Visual Studio Generators` for VS 2010 and above
learned to support the C# language. C# assemblies and
programs can be added just like common C++ targets using
the :command:`add_library` and :command:`add_executable`
commands. Referencing between several C# targets in the same
source tree is done by :command:`target_link_libraries` like
for C++. Referencing to system or 3rd party assemblies is
done by the target properties :prop_tgt:`VS_DOTNET_REFERENCE_<refname>`
and :prop_tgt:`VS_DOTNET_REFERENCES`.
* C# as a language can be enabled using :command:`enable_language`
or :command:`project` with ``CSharp``. It is not enabled by
default.
* Flag variables, target properties and other configuration
that specifically targets C# contains ``CSharp`` as a part of
their names.
* More finetuning of C# targets can be done using target and source
file properties. Specifically the Visual Studio related target
properties (``VS_*``) are worth a look (for setting toolset
versions, root namespaces, assembly icons, ...).
* **Auto-"linking"** in .csproj files: In C#/.NET development with
Visual Studio there is a number of visual editors used which
generate code. Both the generated files and the ones edited
with the UI are connected in the ``.csproj`` file using
``<DependentUpon>`` tags. If CMake finds within a C# project
any source file with extension ``.Designer.cs`` or ``.xaml.cs``,
it checks sibling files with extension ``.xaml``, ``.settings``,
``.resx`` or ``.cs`` and establishes the dependency connection.