使用nuget交付临时的构建时资产

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

使用nuget交付临时构建资产的正确方法是什么?

我正在用单个文件制作一个nuget包,在构建阶段相关项目需要这些文件。我希望在继续进行其余构建之前,将文件内容复制到相关项目中的obj\$(Configuration)文件夹中。当然,obj文件夹是临时的,因此,如果obj被清除,我希望将文件再次复制到下一个版本中。

我尝试了contentFiles描述的here方法。这样可以将文件打包在nupkg文件中,但是我无法对其进行设置,因此我的文件被传递(并重新传递)到obj\$(Configuration)

nuget
1个回答
0
投票

您正在寻找NuGet's MSBuild extensibility。不幸的是,这意味着如果您尚不了解MSBuild,则需要对其有所了解。我建议运行msbuild -bldotnet build -bl,这将创建一个msbuild.binlog文件,您可以使用msbuild structured log viewer查看该文件。

一个选项是有一个目标,可以在适当的时间在中间输出目录中创建文件(可能需要使用BeforeTargets)。您可以使用Inputs和Outputs属性使msbuild进行增量生成检查,并在不需要时跳过复制,这可能会使生成速度更快。

但是,除非文件包含动态内容,否则复制文件是浪费。它只是作为一个项目包含在构建过​​程的另一部分中。因此,如果它是静态内容,则只需从软件包的提取目录中的目标文件中创建相关项目,然后就像将其复制到中间输出目录一样好,而不会浪费时间和磁盘空间。] >

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