Я работаю над тестом, где я использую сертификаты. У меня есть следующий код, где я проверяю .dll в папке и посмотреть, есть ли у них сертификат. Если они это делают и они проверены, я добавляю их в список сборок:
var files = Directory.EnumerateFiles(directory, "*.dll", SearchOption.AllDirectories);
foreach (var file in files)
{
try
{
var cert = new X509Certificate2(X509Certificate.CreateFromSignedFile(file));
if (cert.IsNull() || !cert.Verify() || !PUBLIC_KEY.Equals(cert.GetPublicKeyString()))
{
cert.Dispose();
continue;
}
cert.Dispose();
assemblies.Add(Assembly.LoadFrom(file));
}
catch (CryptographicException)
{
// dll not signed
}
}
Но странно то, что если компьютер не подключен к Интернету, он не добавит .dll к моим сборкам. Но если он подключен к Интернету, и я запускаю свой тест, все DLL с сертификатом добавляются в мой список сборок. Также после отключения мой тест все еще будет работать. Так что требуется одноразовое подключение к интернету. Я думаю, что это как-то связано с функцией Verify ().
Есть ли способ не иметь это первое подключение к интернету? Я хочу запустить свой тест на компьютерах без подключения к интернету. Я нуб с сертификатами, поэтому не знаю, как это исправить.