Как указано в заголовке, мне интересно, какое исключение .NET лучше всего подойдет для сценария, в котором зависимая часть программного обеспечения (стороннее приложение, дополнительная функция/роль Windows и т. д.) – не обязательно зависимость от dll или библиотека — подтверждена как отсутствующая или не может быть обнаружена/определена по разным причинам (разрешения и т. д.).
В этом сценарии предполагается, что минимальные системные требования проверки на данный момент пройдены (ОС, архитектура, среда, права доступа, оборудование и т. д.).
кажется неуместным, поскольку он описывает платформу как часть сбоя - и это исключение должно быть выброшено еще до того, как код проверит "Является ли необходимое программное обеспечение XYZ/ функция установлена или нет?".
неточно описывает ситуацию, поскольку проверка путей к файлам не всегда является надежным методом определения того, установлено ли программное обеспечение/функция XYZ или нет? -- пути установки могут измениться, неустановленные остатки могут присутствовать/повреждены и давать ложноположительную оценку «Файл присутствует, поэтому программное обеспечение XYZ считается установленным/зарегистрированным» и т. д.
) Описание для этого: «Указанная сборка не установлена в вашей системе».
Я не нашел много документации по этой ошибке, но моя интерпретация заключается в том, что это обычно наблюдается конкретно в контексте неудачной установки обновления/компонента/функции Windows - и обычно не используется в сценарии, описанном в этом вопросе, где отсутствующая часть программного обеспечения является сторонним приложением.
< ul>
Это да, однако это кажется возможным вариантом, когда недостающая часть программного обеспечения является компонентом/функцией/ролью Windows.
[*] Мои попытки найти ресурс, который сопоставляет это с исключением .NET, оказались тщетными.
[*]Выброс исключения Win32Exception в .NET — это вариант, но я пока не нашел того, который мне кажется подходит.
Является ли создание собственного исключения лучшим подходом к этому? Этот сценарий не кажется мне крайним случаем, когда пользовательское исключение является наиболее распространенным подходом, используемым в дикой природе, поэтому я надеюсь, что я просто глуп и еще не нашел лучшего исключения в . NET API.
Как указано в заголовке, мне интересно, какое исключение .NET лучше всего подойдет для сценария, в котором зависимая часть программного обеспечения (стороннее приложение, дополнительная функция/роль Windows и т. д.) – не обязательно зависимость от dll или библиотека — подтверждена как отсутствующая или не может быть обнаружена/определена по разным причинам (разрешения и т. д.). [list] [*]В этом сценарии предполагается, что минимальные системные требования проверки на данный момент пройдены (ОС, архитектура, среда, права доступа, оборудование и т. д.). [*][code]PlatformNotSupportedException[/code] кажется неуместным, поскольку он описывает платформу как часть сбоя - и это исключение должно быть выброшено еще до того, как код проверит "Является ли необходимое программное обеспечение XYZ/ функция установлена или нет?". [*][code]FileNotFoundException[/code] неточно описывает ситуацию, поскольку проверка путей к файлам не всегда является надежным методом определения того, установлено ли программное обеспечение/функция XYZ или нет? -- пути установки могут измениться, неустановленные остатки могут присутствовать/повреждены и давать ложноположительную оценку «Файл присутствует, поэтому программное обеспечение XYZ считается установленным/зарегистрированным» и т. д. [*][code]STATUS_SXS_ASSEMBLY_MISSING (0x80073701[/code]) Описание для этого: «Указанная сборка не установлена в вашей системе».
Я не нашел много документации по этой ошибке, но моя интерпретация заключается в том, что это обычно наблюдается конкретно в контексте неудачной установки обновления/компонента/функции Windows - и обычно не используется в сценарии, описанном в этом вопросе, где отсутствующая часть программного обеспечения является сторонним приложением. < ul> Это да, однако это кажется возможным вариантом, когда недостающая часть программного обеспечения является компонентом/функцией/ролью Windows. [/list]
[*] Мои попытки найти ресурс, который сопоставляет это с исключением .NET, оказались тщетными.
[*]Выброс исключения Win32Exception в .NET — это вариант, но я пока не нашел того, который мне кажется подходит.
Является ли создание собственного исключения лучшим подходом к этому? Этот сценарий не кажется мне крайним случаем, когда пользовательское исключение является наиболее распространенным подходом, используемым в дикой природе, поэтому я надеюсь, что я просто глуп и еще не нашел лучшего исключения в . NET API.