Как упаковать приложение WPF с зависимостями после сборки в пакет UWP? - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь упаковать приложение wpf в пакет UWP, используя проект упаковки C #. Проблема в том, что у моего приложения есть зависимости dll (c ++ dll), которые предоставляются с событиями после сборки в его выводе. Поэтому, когда я добавляю ссылку на свое приложение в проект упаковки, его выходные данные содержат только библиотеки DLL, сгенерированные из сборки настольного приложения - все остальные библиотеки DLL (из событий после сборки) игнорируются.

Затем я решил сделать те же события после сборки для проекта упаковки и предоставить недостающие библиотеки, но, к сожалению, они не учитывались и в процессе упаковки.

Есть ли способ заставить эти dll быть упакованными в appx результата?

1 Ответ

0 голосов
/ 28 августа 2018

Я придумал решение для моей ситуации (не уверен, что это лучшее из возможных ...).

Предположим, что настольное приложение называется MyApp. Решение содержит следующие шаги:

  1. Добавление события после сборки в настольное приложение для копирования его вывода в каталог «MyApp» в проекте упаковки.

  2. Включите этот каталог в проект упаковки и сделайте его копируемым как содержимое.

Чтобы сделать весь каталог содержимым, добавьте следующую ItemGroup в упаковочный файл проекта wapproj:

<ItemGroup>
    <Content Include="MyApp\\**\*.*">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>  

Это делает содержимое папки, подлежащей копированию, в выходных данных проекта упаковки. Поскольку оно имеет то же имя, что и упомянутое приложение, оно копируется в тот же выходной каталог, который создает проект упаковки для каждого ссылочного приложения. Это происходит как раз в нужное время (перед вызовом MakePri.exe), и все зависимости учитываются в процессе сборки проекта упаковки.

...