Hi,
I think you have to build three different DLLs (i.e. 3 different projects in Visual Studio).
Anyway, these projects can be in the same Visual Studio solution and share the same code.
Create a first project (SheetSetProject_19 for example) referencing ACSMCOMPONENTS19Lib.
Add a conditional compilation symbol in the project properties > Build tab (ACAD_19 for example)
Write the code for this project with conditional compilation directives in the using directives:
#if ACAD_19
using ACSMCOMPONENTS19Lib;
#elif ACAD_20
using ACSMCOMPONENTS20Lib;
#elif ACAD_21
using ACSMCOMPONENTS21Lib;
#endif
Add a new project to the solution (SheetSetProject_20) referencing ACSMCOMPONENTS20Lib with a conditional compilation symbole (ACAD_20)
From the Project menu > Add Existing Item > browse to the Project_19 folder > select the code files to share > from the Add button drop-down list, select Add As Link.
Idem for SheetSetProject_21.
You can also set the same Output Path for the 3 projects in Release mode (in the Build tab of the projects properties).