Поделиться через


Общие устранение неполадок в .NET Native

В этой статье описывается, как устранять потенциальные проблемы, которые могут возникнуть при разработке приложений с помощью .NET Native.

Проблемы

  • Проблема: окно вывода построения не обновляется должным образом.

    Разрешение: окно вывода построения не обновляется до завершения построения. Время построения может занимать до нескольких минут, поэтому обновления могут отображаться с задержкой.

  • Проблема: время розничной сборки вашего приложения для Arm увеличилось.

    Разрешение. При развертывании приложения на устройстве Arm вызывается инфраструктура .NET Native. Этой компиляции выполняет большое количество операций оптимизации, обеспечивая продолжение работы нестатической семантики, такой как отражение. Кроме того, часть платформа .NET Framework, которую использует приложение, статически связана для оптимальной производительности и должна быть компилирована в машинный код. Именно поэтому компиляция занимает больше времени.

    Однако, по-прежнему время компиляции находится в пределах одной минуты, как при стандартной компиляции большинства приложений на стандартном компьютере для разработки. Как правило, создание собственных образов для платформа .NET Framework на стандартном компьютере разработки занимает несколько минут. Несмотря на все оптимизации для улучшения созданного кода и включая платформа .NET Framework, время сборки приложений обычно является минутой или двумя.

    Мы продолжаем работать над повышением производительности компиляции, занимаясь вопросами многопоточной компиляции и другими оптимизациями.

  • Проблема. Вы не знаете, компилируется ли приложение с помощью .NET Native.

    Решение. Если вызывается компилятор .NET Native, вы заметите больше времени сборки, а диспетчер задач отобразит различные процессы компонента .NET Native, такие как ILC.exe и nutc_driver.exe.

    После успешной сборки проекта с помощью .NET Native вы найдете выходные данные в разделе obj\config\ arch archname.ilc\\out. Окончательное содержимое собственного пакета можно найти в разделе bin\arch\config\AppX. Окончательное содержимое собственного пакета находятся в разделе \bin\arch\config\AppX, если вы развернули приложение.

  • Проблема: скомпилированное с машинным кодом .NET приложение создает исключения среды выполнения (обычно исключения MissingMetadataException или MissingRuntimeArtifactException), которые не создавались при компиляции без машинного кода .NET.

    Разрешение: исключения возникают из-за того, что .NET Native не предоставил метаданные или код реализации, доступный в противном случае через отражение. (Дополнительные сведения см. в статье .NET Native и Компиляция.) Чтобы исключить исключение, необходимо добавить запись в файл директив среды выполнения (rd.xml), чтобы цепочка инструментов .NET Native может сделать метаданные или код реализации доступными во время выполнения. Доступны два средства устранения неполадок, которые создадут необходимые записи для добавления в файл директив среды выполнения.

    Дополнительные сведения см. в разделе Отражение и .NET Native.

См. также