Как создать пользовательский каталог сборки для моего приложения WPA - PullRequest
0 голосов
/ 19 марта 2020

Я бы хотел очистить сгенерированную сборку моего приложения, чтобы папка приложения содержала указанную c иерархию папок, в которой все различные автоматически включаемые .dll помещаются в папку второго уровня, а не рядом с моим .exe

Как бы я go сделал это в решении C# VS2019?

Желаемый пример структуры:

[App]
  [Resources]
    Newtonsoft.Json.dll
    System.Data.SQLite.dll
    etc...
  [Data]
    Data.sqlite3
    etc...
  Launcher.exe
  App.config

1 Ответ

0 голосов
/ 20 марта 2020

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

1) Добавьте 'probing privatePath = MyFolder' в файл App.config вашего проекта.

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="MyFolder" />
    </assemblyBinding>
  </runtime>
</configuration>

2) Добавьте целевой файл с помощью AfterBuild в ваш файл проекта. (Откройте файл .csproj вашего приложения в текстовом редакторе) Затем добавьте один узел для каждой сборки .dll, которая только что была выгружена рядом с вашим .exe, с источником, указанным для dll сборки, которую вы хотите переместить, и с назначением, равным $ (OutDir) \ MyFolder

<Target Name="References" AfterTargets="AfterBuild">
  <Move SourceFiles="$(OutDir)\MyAssemblyClutter.dll" DestinationFolder="$(OutDir)\MyFolder" />
</Target>

Примечание: Build> Clean не удалит ваши пользовательские папки или их содержимое после этого.

Для бонусных баллов ( благодарность Джейсону Морсу ), чтобы гарантировать, что пакеты NuGet не сохраняют свои файлы .pdf и документацию по отладке. xml файлы в вашей папке сборки выпуска, добавьте следующее в файл проекта в ' 'узел.

<AllowedReferenceRelatedFileExtensions>
  <!-- Prevent default XML and PDB files copied to output in RELEASE. Only *.allowedextension files will be included-->
  .allowedextension
</AllowedReferenceRelatedFileExtensions>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...