Установите для нескольких исполняемых проектов общий путь вывода в Windows 10 Desktop Bridge - PullRequest
0 голосов
/ 11 июля 2020

Я ищу способ объединить все мои ссылки на «Приложения» в общий каталог внутри пакета AppX. Типы проектов ссылок - стандартные проекты Visual C ++ (Win32). Текущая структура моего решения выглядит следующим образом:

Структура решения

* Solution
|__ Exe_1 (Visual C++ Project)
|__ Exe_2 (Visual C++ Project)
|__ Exe_3 (Visual C++ Project)
|
|__ MyApp (AppX Project)
    |__ Applications
    |   |__ Exe_1
    |   |__ Exe_2
    |   |__ Exe_3
    |___ Images\
    |___ Package.appxmanifest     

После публикации решения и развертывания пакета AppX я получаю следующую структуру каталогов:

[Фактически] Развернутая структура каталогов AppX

Com.MyApp.12107._cx40ttqa_n3.48019.0_x64zyj5
|__ Exe_1\Exe_1.exe
|__ Exe_2\Exe_2.exe
|__ Exe_3\Exe_3.exe

[Ожидается] Развернутая структура каталогов AppX

Com.MyApp.12107._cx40ttqa_n3.48019.0_x64zyj5
|__ Exe_1.exe
|__ Exe_2.exe
|__ Exe_3.exe

Что я пробовал

  • Я пробовал следовать этому руководству на MSDN , но это не помогло для проектов на основе Visual C ++.
  • Изменение «Выходного каталога» в свойствах проекта исполняемого файла не повлияло.
  • Добавлено событие после сборки в проект AppX для перемещения файлов вручную.

Чего я хочу достичь

Результат, аналогичный тому, как Apple удалось упаковать файлы, связанные с iTunes, в каталог приложения root.

iTunes App Package on Local machine


UPDATE #1

I've edited the MyApp.wapproj file in the AppX project and modified the following lines:

 Содержимое  Всегда   

При наличии модификации t EXE теперь копируется только , но не используется в качестве реальной точки входа. Случай аналогичен методу события после сборки.

1 Ответ

0 голосов
/ 18 июля 2020

На момент написания Visual Studio 2019 (v16.6.4) не предлагает встроенной опции для изменения путей вывода для указанных «приложений». В качестве альтернативы вы должны отозвать все ссылки на приложения из проектов и добавить следующее под импортированными активами в вашем .wapproj файле проекта:

<Content Include="..\Path\To\Your\Exe_1\Exe_1.exe" />
<Content Include="..\Path\To\Your\Exe_2\Exe_2.exe" />
<Content Include="..\Path\To\Your\Exe_3\Exe_3.exe" />

Кроме того, вам нужно будет заменить тег <EntryPointProjectUniqueName> с <EntryPointExe>, поскольку мы больше не имеем дело со ссылочными приложениями (по крайней мере, в случае автора).

<EntryPointExe>..\Path\To\Your\Exe_1\Exe_1.exe</EntryPointExe>

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

Отзыв от Microsoft

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

Scoban [MSFT]

Обсуждение можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...