Проблемы компиляции в 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 о том, что здесь происходит.
Я предполагаю, что мой вопрос: кто-нибудь еще может подтвердить это, или если это подтверждено, они нарушили обратную совместимость?