Instalacja certyfikatu w akcji niestandardowej .MSI nie działa poprawnie

Próbuję zainstalować certyfikat w lokalnym magazynie komputera w akcji niestandardowej. Certyfikat jest zainstalowany, ale gdy używam go do zapytania AWS, pojawia się ten błąd:

Obiekt zawiera tylko publiczną połowę pary kluczy. Należy również podać klucz prywatny.

Instalator jest uruchomionypodniesiony, celem jest Windows Vista.

Jeśli użyję osobnego pliku .exe do zainstalowania tego samego certyfikatu, używając dokładnie tego samego kodu, działa. Czym różni się instalacja certyfikatu za pomocą Instalatora Windows?

Kod:

private void InstallCertificate(string certificatePath, string certificatePassword)
{
  if (IsAdmin())
  {
    try
    {
      X509Certificate2 cert = new X509Certificate2(certificatePath, certificatePassword,
        X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);

      X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
      store.Open(OpenFlags.ReadWrite);
      store.Add(cert);
      store.Close();
    }
    catch (Exception ex)
    {
      throw new DataException("Certificate appeared to load successfully but also seems to be null.", ex);
    }
  }
  else
  {
    throw new Exception("Not enough priviliges to install certificate");
  }
}

questionAnswers(1)

yourAnswerToTheQuestion