0

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

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

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

4

1 回答 1

0

您要表达的是对仅在构建操作期间复制的静态内容文件的需求。

更多相关信息

不幸的是,只有基于 PackageReference 的项目支持 contentFiles 文件夹,但您正在使用基于 packages.config 的项目。

好消息是您仍然可以通过使用构建目标来实现这一目标!

首先将您的内容放入包中的任何随机文件夹中

/mycontent/images/ListOfFiles

在 build 文件夹中,您可以添加与包同名的目标文件。前任:

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>

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

于 2018-04-06T22:31:19.063 回答