如何将图像文件夹移动到 NuGet 包中构建/安装时的另一个位置

问题描述 投票:0回答:1

我创建了一个 NuGet 包,在其中安装其他引用的包。 我还有一个最多可容纳 100 张图像的文件夹。如果我将它们放入内容文件夹中,它们将被复制到我安装 NuGet 包的项目的根目录。

这是我的问题。将它们放置在“内容”>“图像”>“文件列表”中时,每个项目最多需要 30 分钟才能将文件复制到根文件夹。 此外,我需要它们位于 bin/debug 和 bin/release 文件夹中,而不是项目的根目录中。

有没有办法将图像添加到 lib 文件夹中,以便它们位于 package > lib > Images 文件夹中,然后将它们复制到安装项目的 bin/debug 和 bin/release 文件夹中?

build directory nuget nuget-package
1个回答
0
投票

您所阐述的是需要仅在构建操作期间复制的静态内容文件。

有关此的更多信息

不幸的是,只有基于 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>

或者类似的东西:) 请注意,我尚未对此进行测试,但它应该为您指明正确的方向。

© www.soinside.com 2019 - 2024. All rights reserved.