Nupack是一种使用Visual Studio构建时,基于汇编或NUSPEC生产.NET 4.0+的Nuget软件包的简便方法。它被实现为nuget软件包。
当Nupack通过项目引用时,没有创建依赖关系,只有一个新的构建步骤可以自动将项目输出包装到带有项目名称为ID的Nuget软件包中。
当将.NUSPEC文件视为项目的一部分时,Nupack尊重规范,并且不应用任何自动配置来生成预期的Nuget软件包。
使用Nuget软件包依赖项生产一个简单的库(LIB文件夹)。当未检测到类型库的项目的NUSPEC文件时,将自动应用此模式。
当软件包是基于控制台应用程序和.NUSPEC的情况下,则使用.targets文件定义构建目录,以提供一种简单的方法来添加构建操作步骤作为邮政构建,并带有5个参数:
依赖项可以是Nuget软件包,项目参考等...它们必须递归将其包含在带有充分表格的生成的Nuget软件包中。
Nuget过程不会传播XML文档和输出中依赖的资源,并且在Nupack包装过程中无法考虑。让Nupack自动传播它们,有助于在每个节点中保持清洁的结构和文档。
Nupack可以提供一个库来开发插件作为Nuget软件包。它将从package.config检测插件,并将其从nupack文件夹加载,以在Nupack中添加其他行为。插件将与传递给nupack的参数调用,并在保存结果之前从原始包装构造器中生产一个包装构造器。插件在Nuget创建后被处置。
nupack必须创建一个特定的软件包,以将插件(库)存储在nupack文件夹中时,当项目参考nupack.extension。
当Nupack由名为[库]的控制台应用程序引用。Optimizer并引用名为[库]的库时,将完成优化器模式。生成的nuget软件包包含[库] .dll到lib文件夹中,并且[库] .optimizer.exe将带有.targets文件的构建文件夹放置在具有相同参数的Postbuild上的构建文件夹中,而不是标准的构建操作,用于控制台应用程序模式。 Nuget软件包将[库]名称为ID。这意味着如果[库]是nuget生产者,则不会完成模式。优化器模式将是重写IL的切入点,例如或基于[库] .DLL使用。
Visual Studio 2017更改了Nuget集成模板。 Nupack必须进行更新以支持Visual Studio 2017。
Nuget令人沮丧的是要有一个干净整整的元数据。不幸的是,InderblyInfo没有提供揭示所有Nuget需求的方法。另一方面,通常有必要在多个地方声明引起同步问题并添加维护开销的相同信息。使用github.com API自动完成Nuget创建可能是一件好事,可以保持反应性。