Пакет Nuget - переместите всю папку с изображениями в другое место при установке
Я создал пакет Nuget, в котором я устанавливаю другие упомянутые пакеты. У меня также есть папка изображений, содержащая до 100 файлов изображений. Если я помещаю их в папку содержимого, они копируются в корень проекта, в который я устанавливаю пакет nuget.
Здесь моя проблема. При наличии содержимого> Изображения>listoffiles для каждого проекта копирование файлов в корневую папку занимает до 30 минут. Более того, они нужны мне в папках bin/debug и bin/release, а не в корне проекта.
Есть ли способ просто добавить изображения в папку lib, чтобы они были в папке package> lib> Images, а затем скопировать их в папки bin/debug bin/release проекта, в который он был установлен?
1 ответ
То, что вы формулируете, - это необходимость в статических файлах содержимого, которые копируются только во время действия сборки.
Больше информации об этом.
К сожалению, только проекты, основанные на PackageReference, поддерживают папки contentFiles, но по звуку вы используете проекты, основанные на packages.config.
Хорошей новостью является то, что вы все еще можете достичь этого, используя цели сборки!
Начните с помещения вашего контента в любую произвольную папку в вашем пакете
/mycontent/images/ListOfFiles
В папке сборки вы можете добавить целевой файл, имя которого совпадает с именем пакета. Пример:
build/MyPackage.targets
В этом файле целей вы можете использовать магию MsBuild, чтобы убедиться, что файлы скопированы.
Пример:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<OutputFiles Include="$(MSBuildThisFileDirectory)\..\mycontent\**\*"></OutputFiles>
</ItemGroup>
<Target Name="MyCopyFilesToOutputDirectory" BeforeTargets="Build">
<Copy SourceFiles="@(OutputFiles)" DestinationFolder="$(IntermediateOutputPath)" />
</Target>
</Project>
Или что-то в этом роде:) Обратите внимание, что я не проверял это, но это должно указать вам правильное направление.