У меня есть проект C# Windows Runtime Component. Он имеет минимальную версию Windows X и нацелен на Windows версии Z.
Внутри он использует ApiInformation.IsTypePresent(NewType) для обнаружения нового типа, который появляется в Windows версии Z, и использует его, если он доступен.
Теперь у меня есть универсальное приложение для Windows на C#, которое использует предыдущий проект. Если я установлю для проекта приложения минимальные окна X и целевые окна Z, все будет работать, как ожидалось.
Однако, если я установлю для проекта приложения минимальную версию X и целевую версию Y (которая не содержит новый тип):
ApiInformation.IsTypePresent(NewType), работающий на машине с Windows версии Z, возвращает true, и это хорошо.Однако, когда я действительно пытаюсь использовать этот новый тип, в разделе «Отладка» (при отключенном .NET Native) я получаю исключение с:
Could not find Windows Runtime type 'NewType'.
В разделе Release (с установленным .NET Native) тип, по-видимому, обнаружен, но я получаю исключение при вызове метода для него:
Method 'NewType.Method()' was not included in compilation, but was referenced in '...' There may have been a missing assembly.
Что мне нужно сделать с проектом компонента, чтобы потребителям приложений не приходилось настраивать таргетинг на окна Z? Весь смысл проекта в том, что это уровень совместимости, который могут использовать потребители приложений. это будет, если присутствует новый тип, использовать его, в противном случае вместо него использовать старые типы.





Возможный дубликат Не соблюдает ли ApiInformation целевую версию приложения