我创建了一个 NuGet 包,在其中安装其他引用的包。 我还有一个最多可容纳 100 张图像的文件夹。如果我将它们放入内容文件夹中,它们将被复制到我安装 NuGet 包的项目的根目录。
这是我的问题。将它们放置在“内容”>“图像”>“文件列表”中时,每个项目最多需要 30 分钟才能将文件复制到根文件夹。 此外,我需要它们位于 bin/debug 和 bin/release 文件夹中,而不是项目的根目录中。
有没有办法将图像添加到 lib 文件夹中,以便它们位于 package > lib > Images 文件夹中,然后将它们复制到安装项目的 bin/debug 和 bin/release 文件夹中?
您所阐述的是需要仅在构建操作期间复制的静态内容文件。
有关此的更多信息。
不幸的是,只有基于 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>
或者类似的东西:) 请注意,我尚未对此进行测试,但它应该为您指明正确的方向。