Forum Discussion

MikeW2405's avatar
MikeW2405
Copper Contributor
Nov 24, 2021

How to include/exclude platform dependent code

Im wondering what the strategy is for inclusion/exclusion of code depending on TargetFramework? Or is there one?

Eg, in ...\Core\src\Handlers\Application\ApplicationHandler.cs, it uses both file inclusion/exclusion and #if statements to include/exclude code.

I've temporally removed the #if and added the appropriate lines to the platform's files, which were already there by the way. It compiles and works ok.

By having it in both places one has to look all over the place to find/debug code.

It seems to me that file inclusion/exclusion is the most appropriate place to put platform dependent code.

  • vodevil1985's avatar
    vodevil1985
    Copper Contributor
    You can use multi targeting like approch, you set build env variables like TARGET_PLATFORM and in your csproj you make something like that

    <ItemGroup Condition="'$(TARGET_PLATFORM)' == 'Linux'">
    <Compile Include="*.linux.cs" />
    </ItemGroup>
    • MikeW2405's avatar
      MikeW2405
      Copper Contributor

      vodevil1985, i know this. however my query was you have too ways of including/excluding code, what is the best to use? What you have said or #if defined.

       

Resources