> From: mono-devel-list-boun...@lists.ximian.com [mailto:mono-devel-list- > boun...@lists.ximian.com] On Behalf Of Greg Young > > <Reference Include="Mono.Posix" Condition=" '$(OS)' != 'Windows_NT' " />
That doesn't do the trick all by itself, because then your code won't compile on windows, in all the places where something references Mono.Posix. If you want to use this as a solution, you'll need to define a compiler symbol in the project, and maintain different project files (or different build configurations) when building on windows or mono, and then #if to remove references to Mono.Posix, when built in windows. While this technique works, it would result in binaries that are not cross-platform compatible (maybe you don't care). And you have to maintain the separate project files, which is annoying. The other way is to build a factory, and do a run-time check to load the appropriate assembly. For example, you can put the abstract StuffDoer class in a common assembly, which is available to all your platform agnostic code. Then write a StuffDoerWin derivative class in a windows-only assembly, and a StuffDoerMono class in a mono-only assembly. Choose which one to instantiate using a run-time check, like: // This is defined in a common assembly public static abstract class StuffDoer { public static StuffDoer CreateInstance() { if (Type.GetType("Mono.Runtime") == null) { // running on windows // Use Activator.CreateInstance to return an object of type StuffDoerWin, from my Windows assembly return newStuffDoer; } else { // running on mono // Use Activator.CreateInstance to return an object of type StuffDoerMono, from my Mono assembly return newStuffDoer; } } public abstract void DoStuff(); // Must be overridden in derivative class } // This is defined in a windows-only assembly public static class StuffDoerWin : StuffDoer { ... } // This is defined in a mono-only assembly public static class StuffDoerMono : StuffDoer { // Here, I can use Mono.Posix stuff ... } _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list