Проблемы компиляции в Windows 10

Я обнаружил проблему, связанную со сборкой приложений, использующих C: \ Windows \ System32 \ CertEnroll.dll в качестве ссылки.

Следующий код работает нормально при компиляции с использованием VS 2015 в Windows 7 и последующем запуске на компьютере с Windows 7.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CERTENROLLLib;

namespace CertTest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                CX509PrivateKey key = new CX509PrivateKey();
                key.ContainerName = Guid.NewGuid().ToString();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Когда вы пытаетесь скомпилировать это в Windows 10, а затем попытаетесь запустить его на компьютере с Windows 7, выдается следующая ошибка.

"Невозможно привести объект COM типа 'System .__ ComObject' к типу интерфейса 'CERTENROLLLib.CX509PrivateKey'. Эта операция завершилась неудачно, поскольку вызов QueryInterface для компонента COM для интерфейса с IID '{728AB362-217D-11DA-B2A4-000E7BBB2B09} 'не удалось из-за следующей ошибки: такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)). "

У меня было несколько человек здесь, чтобы повторить это, и я хотел бы получить больше информации, прежде чем связаться с Microsoft о том, что здесь происходит.

Я предполагаю, что мой вопрос: кто-нибудь еще может подтвердить это, или если это подтверждено, они нарушили обратную совместимость?

Ответы на вопрос(1)

Ваш ответ на вопрос