>An aside - if the NAS has dedupe enabled it would be even more elegant to use a native call. That would not touch the file at all, it would just add a pointer in the metadata. The underlying file would never be locked, and would already exist, so it would be immediately available to the secondary process. The contention issue would never arise.
Assuming so, how would this be handled in .NET?