Nuget Package - 在安装时将整个图像文件夹移动到另一个位置

时间:2018-04-05 18:08:21

标签: directory nuget manage-nuget-packages

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

这是我的问题。拥有内容> Images> listoffiles时,每个项目最多需要30分钟才能将文件复制到根文件夹。我还需要在bin / debug和bin / release文件夹中使用它们,而不是项目的根目录。

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

1 个答案:

答案 0 :(得分:0)

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

更多information

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

或者那些东西:) 请注意,我没有对此进行过测试,但它应该指向正确的方向。