которые фактически реализуют код, специфичный для платформы (многоцелевой таргетинг)?
В нашем случае у нас есть приложение .NET MAUI, которое на самом деле должно быть ориентировано как минимум на Android и iOS.
С одной стороны , у нас есть проект библиотеки классов MAUI,
который частично реализует код, специфичный для платформы, посредством многоцелевого таргетинга.
С другой стороны, чтобы включить (едва и, к сожалению, не совсем специфично для платформы) модульное тестирование для соответствующего тестового проекта для этой библиотеки классов MAUI проекта
нам пришлось добавить .net8.0; в тег TargetFrameworks в файле *.csproj:
Код: Выделить всё
net8.0;net8.0-android;net8.0-ios
И это, похоже, не предусмотренный случай.
Единственное решение, которое мы нашли, — это использование директив препроцессора, но это более или менее похоже на обходной путь:
Код: Выделить всё
#if (ANDROID || IOS)
///
public override partial string Foo();
///
public override partial string Bar();
#else
///
public override string Foo()
{
throw new PlatformNotSupportedException();
}
///
public override string Bar()
{
throw new PlatformNotSupportedException();
}
#endif
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-net-maui
Мобильная версия