First: I've tried to set FriendlyName to X509Certificate2 - does not work.
Second: cert.Extensions.Add(new X509Extension(new AsnEncodedData(new Oid(ASN1.Microsoft.Authenticode.SPC_SP_OPUS_INFO_OBJID), Encoding.Unicode.GetBytes("somestring")), false)); - this does not work either.
Third: using P/INVOKE with CRYPT_ATTR_BLOB, CRYPT_ATTRIBUTE and CRYPT_ATTRIBUTES and set the latter (as IntPtr) to SIGNER_SIGNATURE_INFO.psUnauthenticated - this results in some very strange result code of 0x80070000 (The operation completed successfully) coming from SignerSignEx, the msi file to be signed is not signed (modified).
Some other user experience points to the same error: