anchor.diff:    check "signerSignatureSize" (Marshal.GetLastWin32Error())
   #endif
     (int)pSize
  +#endif
   
   let signerSignFileWithKeyPair fileName kp = 
  +#if MONO
  +  let mutable r = 0
  +  let sn = new StrongName (kp:byte[])
  +  let r = match sn.Sign (fileName) with
  +          | true -> 0
  +          | false -> -1
  +  check "action" r
  +  let r = match sn.Verify (fileName) with
  +          | true -> 0
  +          | false -> -1
  +  check "signerSignFileWithKeyPair" r
  +#else
     let mutable pcb = 0u
     let mutable ppb = (nativeint)0
     let mutable ok = false
  
positive.code:       // Marshal.GetComInterfaceForObject adds an extra ref for importerPtr
        if IntPtr.Zero <> importerPtr then
          Marshal.Release(importerPtr) |> ignore
  
  // The symbol reader's finalize method will clean up any unmanaged resources.
  // If file locks persist, we may want to manually invoke finalize
  
negative.code: #else
    StrongNameSignatureVerificationEx(fileName, true, &ok) |> ignore
    check "signerSignFileWithKeyPair" (Marshal.GetLastWin32Error())
  #endif
  #endif
  
  let signerSignFileWithKeyContainer fileName kcName =
  