UWP - Библиотеки классов и генерация PRI-файлов - PullRequest
1 голос
/ 15 марта 2020

В моем решении UWP у меня есть проект ClassLibrary1 (с BlankPage1.xaml) и проект ClassLibrary2 , который ссылается на проект ClassLibrary1 (с BlankPage2.xaml).

Я делаю 2 пакета NuGet (один для ClassLibrary1 и другой для ClassLibrary2).

В приложении UWP я добавил пакет ClassLibrary2 NuGet. Но когда я компилирую это приложение, я получаю следующие ошибки компиляции:

Error: Could not copy the file "C:\Users\xxx\.nuget\packages\classlibrary2\1.0.0\lib\uap10.0.16299\ClassLibrary1\BlankPage1.xbf" because it was not found.
Error: Could not copy the file "C:\Users\xxx\.nuget\packages\classlibrary2\1.0.0\lib\uap10.0.16299\ClassLibrary1\BlankPage1.xaml" because it was not found.
Error: Could not copy the file "C:\Users\xxx\.nuget\packages\classlibrary2\1.0.0\lib\uap10.0.16299\ClassLibrary1\ClassLibrary1.xr.xml" because it was not found.

Я заметил, что файл ClassLibrary2.pri включает эти 3 файла, и не должен, потому что они включены в пакет ClassLibrary1 NuGet.

Как я могу указать, чтобы не включать эти файлы в ClassLibrary2.pri?

Это пример проекта, который воспроизводит проблему: https://github.com/kakone/PriGeneration/

1 Ответ

0 голосов
/ 21 апреля 2020

Я нашел обходной путь, скопировав пользовательский файл Filter.layout.resfiles в папку obj перед целевым объектом MSBuild с именем _GenerateProjectPriFileCore.

Я добавил эти строки в свой .csproj:

<Target Name="CustomPriFileGeneration" BeforeTargets="_GenerateProjectPriFileCore" Condition=" '$(Configuration)'=='Release' ">
    <Copy SourceFiles="$(ProjectDir)\filtered.layout.resfiles" DestinationFolder="$(BaseIntermediateOutputPath)\$(Configuration)\$(TargetFramework)" />
</Target>

и файл отфильтрованного.layout.resfiles в моем проекте:

ClassLibrary2\BlankPage2.xaml
ClassLibrary2\ClassLibrary2.xr.xml
...