nuget - 使用 nuget 交付临时构建时资产
问题描述
使用 nuget 交付临时构建时资产的正确方法是什么?
我正在制作一个带有单个文件的 nuget 包,依赖项目在构建阶段需要这些文件。obj\$(Configuration)
在继续构建的其余部分之前,我希望将文件的内容复制到依赖项目内的文件夹中。当然,该文件夹是临时的,所以如果被清除obj
,我希望我的文件作为下一次构建的一部分再次复制到那里。obj
我尝试了这里contentFiles
描述的方法。这负责将我的文件打包到 nupkg 文件中,但我无法对其进行设置,以便将我的文件交付(并重新交付)到.obj\$(Configuration)
解决方案
您正在寻找NuGet 的 MSBuild 可扩展性。不幸的是,这意味着如果您还不了解 MSBuild,则需要了解一些有关 MSBuild 的知识。我建议运行msbuild -bl
or dotnet build -bl
,它将创建一个 msbuild.binlog 文件,您可以使用msbuild 结构化日志查看器查看该文件。
一种选择是让目标在适当的时间在中间输出目录中创建文件(可能需要使用 BeforeTargets)。您可以使用 Inputs 和 Outputs 属性让 msbuild 进行增量构建检查并在不需要时跳过复制,这可能会使构建速度更快一些。
但是,除非文件具有动态内容,否则复制文件是一种浪费。它只是将作为项目包含在构建过程的另一部分中。因此,如果它是静态内容,您可以从包的提取目录中在目标文件中创建相关项目,然后就像将其复制到中间输出目录一样好,而不会浪费时间和重复磁盘空间。
推荐阅读
- angular - 如何在angular8中将一个组件设置为左侧div,将另一个组件设置为右侧div?
- gmap.net - GMAP.NET 左拖动、隐藏重叠等
- html - 图像以 Firefox 和 chrome 为中心,但不是边缘
- excel - Entering data from one Worksheet into a specific cell on a specific line of a different worksheet
- python - 在熊猫系列中查找价值增加5倍的价值和指数
- node.js - 有没有办法在聚合查询中的 $and 运算符中使用多个正则表达式?
- c# - ModelState 错误不会以部分视图形式显示
- javascript - 如何使用 Dexie.js 删除值字段内的键/值?
- python - 使用单个 os.mkdir 函数(Python)生成多个目录
- spring-boot - kafka 重启后 kubernetes 上的“分区有没有匹配侦听器的领导代理”