Правильный способ обработки мультитаргетинга и модульных тестов в .NET MAUIC#

Место общения программистов C#
Ответить
Anonymous
 Правильный способ обработки мультитаргетинга и модульных тестов в .NET MAUI

Сообщение Anonymous »

Есть ли правильный способ включить модульное тестирование для проектов .NET MAUI (библиотека классов),
которые фактически реализуют код, специфичный для платформы (многоцелевой таргетинг)?
В нашем случае у нас есть приложение .NET MAUI, которое на самом деле должно быть ориентировано как минимум на Android и iOS.
С одной стороны , у нас есть проект библиотеки классов MAUI,
который частично реализует код, специфичный для платформы, посредством многоцелевого таргетинга.
С другой стороны, чтобы включить (едва и, к сожалению, не совсем специфично для платформы) модульное тестирование для соответствующего тестового проекта для этой библиотеки классов MAUI проекта
нам пришлось добавить .net8.0; в тег TargetFrameworks в файле *.csproj:

Код: Выделить всё


net8.0;net8.0-android;net8.0-ios


Но это решение требует реализации конкретной платформы для целевой платформы .net8.0 из-за частичных методов, которые необходимы, например. для конкретного кода Android.
И это, похоже, не предусмотренный случай.
Единственное решение, которое мы нашли, — это использование директив препроцессора, но это более или менее похоже на обходной путь:

Код: Выделить всё

#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
Есть ли подходящее решение, которое можно настроить в файлах *.csproj?


Подробнее здесь: https://stackoverflow.com/questions/793 ... n-net-maui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»