.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\имя_проекта.ilc\out. Окончательное содержимое собственного пакета можно найти в разделе bin\arch\config\AppX. Если вы развернули приложение, окончательное содержимое собственного пакета будет в папке \bin\arch\config\AppX.

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

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

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

См. также раздел