I have a project with a reference that may or may not exist. I have code that uses that reference and I'd like to compile it only if the assembly exists. I'm thinking something along the lines of:
#if ASSEMBLY_EXISTS
AssemblyClass.DoSomething();
#endif
I could put a #define at the top and comment/uncomment as needed, but I'd prefer if it could just somehow know if it's there without my manual intervention, which leads me to believe that #if won't work for this situation. Is there another way to conditionally compile based on whether an assembly exists?
Maybe do it with a condition inside MSBUILD;
It would look something like it
<PropertyGroup>
<DefineConstants Condition="Exists('my.dll') ">$(DefineConstants);DLLEXISTS</DefineConstants>
</PropertyGroup>
and should go quite far down in your .csproj file.
This reads, roughly, as "redefine the constants by appending DLLEXISTS, if my.dll exists"
Now you should be able to do
#if DLLEXISTS
// your stuff here
#endif
You might need to fiddle around with the EXISTS expression to find an appropriate relative path.