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



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

我正在制作一个带有单个文件的nuget包,这是依赖项目在构建阶段所需要的。在继续进行其余的构建之前,我希望将文件的内容复制到依赖项目中的obj$(Configuration)文件夹中。当然,obj文件夹是临时的,所以如果obj被清除,我希望我的文件作为下一次构建的一部分再次复制到那里。

我尝试了这里描述的contentFiles方法。这可以将我的文件打包到nupkg文件中,但我无法设置它,因此我的文件将被传递(并重新传递(到obj$(Configuration)

您正在寻找NuGet的MSBuild可扩展性。不幸的是,这意味着如果你还不知道MSBuild,你需要了解一些它。我建议运行msbuild -bldotnet build -bl,这将创建一个MSBuild.binlog文件,你可以使用MSBuild结构化日志查看器查看它。

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

但是,除非该文件具有异常内容,否则复制该文件是一种浪费。它只是作为一个项目包含在构建过程的另一部分中。因此,如果它是静态内容,您可以从包的提取目录中在目标文件中创建相关项,然后它就像复制到中间输出目录一样好,而不会浪费时间和重复的磁盘空间。

最新更新