После дальнейшего изучения LicenseManager кажется, что метод Validate сканирует только вызывающую сборку текущего домена приложения (информация о лицензии сохраняется как встроенный ресурс с расширением ".licenses").
Одним из решений является запуск кода в отдельном домене приложения.Таким образом, LicenseManager в стороннем компоненте сканирует только встроенные ресурсы текущей сборки, т. Е.
string assemblyPath = Assembly.GetExecutingAssembly().Location;
AppDomainSetup appSetup = new AppDomainSetup();
appSetup.ApplicationBase = new FileInfo(assemblyPath).DirectoryName;
var newDomain = AppDomain.CreateDomain("NewDomain", AppDomain.CurrentDomain.Evidence, appSetup);
var myClassInstance = (MyClass)newDomain.CreateInstanceFromAndUnwrap(assemblyPath, typeof(MyClass).FullName);
myClassInstance.myMethod("foo");
. Чтобы это работало, вам также нужно наследовать MyClass (плюс любые классы, которые передаются междудва домена приложений) от MarshalByRefObject.