Невозможно собрать для ARM64 из проекта упаковки UWP (UWP + Win32) - PullRequest
0 голосов
/ 26 ноября 2018

Я работаю над приложением UWP, в котором есть как приложение UWP, так и небольшая программа Win32, связанные с проектом упаковки UWP.Мое решение выглядит примерно так:

  • OneLocker (UWP)
  • OneLocker.AutoTyper (в частности Win32, WinForms)
  • OneLocker.Package (со ссылками надва выше)

Все это отлично работает, и если я пытаюсь создать пакет приложения только для приложения UWP, я вижу все различные опции ARM / ARM64 / x86 / x64 ( введитеэкран изображения здесь ), поскольку я следовал руководству здесь , чтобы добавить новую конфигурацию ARM64.

Проблема заключается в том, что при попытке собрать весь пакет, включая обаприложение UWP и программа Win32, я вижу только параметры x86 / x64 ( введите изображение экрана здесь ). Вот полный .csproj файл для программы Win32 в пакете.

Теперь я не уверен на 100%, но из того, что я понимаю, должна быть возможностьСоздайте проект пакета UWP для ARM64 сейчас, чтобы он работал на устройствах с Windows на ARM без необходимости эмуляции x86-ARM, верно?

Если так, нужно ли что-то конкретное добавитьв мои проекты или что-то настроить, чтобы включить конфигурацию сборки ARM64 для проекта упаковки?Или это даже поддерживается уже в данный момент?

Единственный пост в блоге, который я нашел об этом ( этот ), касается только приложений C ++ UWP / Win32, а не проектов упаковки UWP.

Спасибо!

РЕДАКТИРОВАТЬ : вот несколько пояснений о том, что я пытаюсь сделать.Для меня главное: Я хочу иметь возможность собирать пакет приложений (UWP + Win32) для ARM64 , чтобы пользователи, работающие под управлением Windows на ARM, могли использовать его вместо пакета x86 (который будет медленнее, как это было бы эмулировано), или автономное приложение UWP в ARM64 (которое будет работать нормально, но без дополнительных функций пакета).

Как я упоминал ранее, это - это то, что я вижу из окна сборки для проекта упаковки.Я знаю, что WinForms не поддерживает ARM64, и на самом деле было бы прекрасно, если бы в пакете, построенном для ARM64, было только приложение UWP и часть Win32 в любом процессоре.Дело в том, что если я выберу комбо Neutral / ARM64 из первой строки (см. Связанное изображение), то я также не смогу выбрать цели x86 / x64, поскольку VS говорит мне, что я не могу смешивать конкретные и нейтральные архитектуры втот же пакет.

Напомним, вот что я хотел бы теоретически:

  • x86 пакет (x86 UWP и WinForms) ✔
  • x64 пакет (x64 UWP и WinForms) package
  • Пакет ARM64 (ARM64 UWP и любые процессорные WinForms) ❌
  • Автономное приложение ARM UWP ✔

Есть ли способ достичь этого

1 Ответ

0 голосов
/ 07 декабря 2018

Windows Packaging Project будет создавать пакеты ARM64, если указанные проекты поддерживают эту архитектуру.На самом деле WinForms или любой другой .NET Framework не поддерживают ARM64.

Вы можете создать пакет, поддерживающий различные архитектуры, которые будут оптимизировать ваши компоненты UWP и использовать версию AnyCPU для WinForms.

Можете ли вы описать требования вашего приложения и какие архитектуры вы бы хотели поддерживать в своих пакетах?

Спасибо, Ридо

...