Сначала вы можете убедиться, что ваша сборка действительно загружена в GAC. Для этого вы можете попробовать следующее:
gacutil /l System.Data
Что бы предоставить детали сборки в GAC как:
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
The Global Assembly Cache contains the following assemblies:
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
Number of items = 3
Затем для загрузки сборки из GAC для использования в ReflectionOnly вы можете попробовать ReflectionOnlyLoad
вместо ReflectionOnlyLoadFrom
пример:
Assembly testAssembly = Assembly.ReflectionOnlyLoad(@"System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86");
if (testAssembly.GlobalAssemblyCache) {
Console.WriteLine(testAssembly.FullName);
Console.WriteLine(testAssembly.Location);
} else {
Console.WriteLine("Not found in GAC");
}
Вышеприведенное дает следующий вывод:
System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll
Надеюсь, это поможет!