Posted on 10. August 2018

Совместимы ли Ваши Windows Forms и WPF приложения с .NET Core 3.0?

Read this article in your language IT | EN | DE | ES

Загрузить Portability Analyzer (2,37 МБ)

Совместимы ли Ваши Windows Forms и WPF приложения с .NET Core 3.0?

В сборке 2018 Microsoft объявили о добавление поддержки Windows приложений (Windows Forms и Windows Presentation Framework (WPF)) для .NET Core 3.0. Теперь Вы сможете запускать новые или уже существующие Windows приложения в .NET Core и пользоваться всеми преимуществами .NET Core, такими как локальное развертывание приложений и улучшенная работа операционной системы.

Команда Microsoft хочет убедиться, что .NET Core 3.0 содержит все API, от которых зависит работа Ваших приложений. Чтобы узнать, какие API используются, был выпущен Portability Analyzer. Он будет сообщать о наборе API-интерфейсов, на которые ссылаются Ваши приложения и которые еще не доступны в NET Core 3.0. Этот список API будет отправлен в Microsoft и поможет определить приоритеты добавления новых API в будущие сборки.

Загрузите и запустите PortabilityAnalyzer.exe в Ваших Windows Forms и WPF приложениях, чтобы узнать, совместимы ли они с .NET Core 3.0. Это поможет сформировать список необходимых API в .NET Core 3.0.

Portability Analyzer

Portability Analyzer - это инструмент с открытым исходным кодом, который упрощает процесс переноса, определяя API-интерфейсы, которые нельзя перемещать между различными .NET платформами. Этот механизм существует уже несколько лет как консольное приложение и Visual Studio расширение. Недавно Microsoft обновили его с Windows Forms интерфейсом, который Вы можете найти здесь. Выглядит он следующим образом.

Запуск анализатора поможет Вам с:

 

  1. Созданием электронной таблицы в Excel формате. С её помощью Вы получите данные об уровне совместимости Вашего проекта с .NET Core 3.0, включая конкретные API, которые в настоящее время не поддерживаются.
  2. Отправкой данной информации .NET команде в Microsoft, чтобы они могли определить, какие API нужны большинству пользователей.

 

Данные, которые собирает Microsoft, совпадают с данными в сформированной Вами электронной таблице. Следует отметить, что ни один из Вашего исходного кода или двоичных файлов не будет отправлен с Вашего компьютера в Microsoft без Вашего ведома.

Чтобы команда Microsoft знала, какие API-интерфейсы нужны пользователям, она просит Вас запустить анализатор. Вы, в свою очередь, увидите, насколько мобильны Ваши приложения, т.к. инструмент составляет список API-интерфейсов, на которые ссылаются Ваши сборки, и которые могут не поддерживаться в .NET Core 3.0.

Microsoft определит приоритетность добавления новых API в .NET Core 3.0 на основе собранной информации. Если в данных по важности представлены требования API Вашего приложения, команда Microsoft с легкостью поможет Вам. Пожалуйста, запустите Portability Analyzer и убедитесь, что Ваше приложение считывается.

Использование Portability Analyze

Следуйте инструкции по запуску.

  1. Распакуйте архив в любом месте на Вашем локальном диске.
  2. Запустите программу PortabilityAnalyzer.exe.
  3. В текстовом поле «Путь к приложению» введите путь к Windows Forms или WPF приложению, вставив строку пути или нажав кнопку «Обзор» и перейдя в нужную папку.
  4. Нажмите кнопку «Анализ».
  5. После завершения анализа Вы увидите отчет, насколько совместимо Ваше приложение с .NET Core 3.0. Его можно открыть в Excel, нажав кнопку «Открыть отчет».
Ниже приведен пример данных, которые Вы получите после запуска программы для популярного приложения Paint.NET:


Примечание: В Вашем отчете может быть вкладка «Недостающие сборки». Это означает, что анализатор не смог найти исходные сборки, на которые есть ссылки в Вашем приложении. Обязательно найдите их и добавьте в папку, которую проверяете. В противном случае Вы не получите полный анализ Вашего приложения.

Поиск проблемы

В настоящее время Portability Analyzer не может проверять сборки ресурсов (* .. resources.dll) и выдает следующие сообщения об ошибке:

 

Невозможно проанализировать.

Детали:

Обнаружение ссылок на сборку [Failed]

 

Не удается найти информацию о сборке для System.Object. Найдены следующие сборки Microsoft:

 

Команда Microsoft работает над устранением этой проблемы. Чтобы разблокировать проверку, пока исправление не станет доступно, Вы можете удалить файлы ресурсов из анализируемой папки.

Использование консольной версии

Если Вы хотите проверить несколько приложений, Вы можете запустить их одно за другим, как описано выше, или использовать консольную версию  Portability Analyzer.

Примечание: В результате Вы получите один отчет по всем приложениям. Если вы хотите получить отдельный отчет для каждого приложения, вы можете автоматизировать запуск с помощью двух механизмов: for in Batch и ForEach в PowerShell.

Чтобы запустить консольное приложение:

 

  1. Загрузите и распакуйте Console Portability Analyzer.
  2. В командной строке введите следующую информацию, указав несколько каталогов, библиотек или исполняемых файлов:
  [PathToApiPort]\ApiPort\net461\win7-x64\ApiPort.exe analyze -f [Directory1] -f [Directory2] -f [Directory3]

Например,

  C:\Downloads\ApiPort\net461\win7-x64\ApiPort.exe analyze -f first.dll -f second.dll -f third.dll

Сформированный в Excel (.xlsx) файле отчет, Вы можете найти в Вашем текущем каталоге.

В Заключение

Для того чтобы определить, насколько установленные на Вашем ПК приложения совместимы с NET Core 3.0, загрузите и используйте Portability Analyzer. Эта информация поможет Microsoft запланировать обновленный выпуск 3.0 и облегчит Вам подключение к .NET Core 3.0.

 

Загрузить Portability Analyzer (2,37 МБ)

Источник



Exception: Stack empty.
Comments are closed