Sorry the question was already answered above but let me restate the issue.<div><br></div><div>The issue is compiling between ms build and xbuild as the mono.posix reference should only be there in Unix (windows uses win api calls)</div><div><br></div><div>Above is a good solution (conditional reference) which works. I know we could manually add a binary reference to mono.posix.dll and then not use it but that just feels wrong. The conditional reference is exactly what we were looking for and works like a charm now!</div><div><br></div><div>The alternative we were looking at was copy/pasting syscalls.cs which is also ugly :)</div><div><br></div><div>Greg<br><br>On Wednesday, January 7, 2015, Jonathan Pryor <<a href="mailto:jonpryor@vt.edu">jonpryor@vt.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Jan 5, 2015, at 6:08 PM, Greg Young <<a href="javascript:;" onclick="_e(event, 'cvml', 'gregoryyoung1@gmail.com')">gregoryyoung1@gmail.com</a>> wrote:<br>
> Have anyone used mono.posix or mono.unix.native in a cross compiling scenario where you have to support visual studio builds? How did you handle this? I don't seem to be able to do a platform specific reference.<br>
<br>
What's the problem? Mono.Posix.dll is MIT/X11; simply bundle the assembly with your code, along with MonoPosixHelper.dll (just copy from the Mono install).<br>
<br>
Furthermore, Mono.Unix.Native.Stdlib should work as-is on Windows (it uses MSVCRT.dll).<br>
<br>
You will need to be careful not to actually use Syscall/etc. on Windows, but due to the lazy nature of the JIT this should be reasonably straightforward:<br>
<br>
        if (running on Unix)<br>
                MethodWhichUsesSyscall ();<br>
        ...<br>
<br>
MethodWhichUsesSyscall() won't be JIT'd unless executed, so any references to e.g. Syscall will be lazily evaluated, allowing things to work on Windows.<br>
<br>
 - Jon<br>
<br>
</blockquote></div><br><br>-- <br><div dir="ltr">Studying for the Turing test</div><br>