【发布时间】:2013-04-23 15:38:38
【问题描述】:
我想run a local/internal NuGet repository。我想我已经想出了如何“重用”现有的 NuGet 包,方法是使用 NuGet 将它们包含在一个虚拟项目中并将包文件扫描到grab my locally-cached .nupkg files,但是......
如何从项目中创建一个 nuget 包 (.nupkg),自动包含 all dll 依赖项,而不仅仅是通过 NuGet 获取的那些?
具体来说:
- 创建解决方案
- 添加新项目
- 添加对各种
.dll文件/其他项目的引用 - 通过包管理器/cmdline/whatever 添加 NuGet 包
-
something 自动创建
.nupkg
根据我的发现,你应该这样做
- 手动编辑您的
.csproj文件以添加<BuildPackage>true</BuildPackage>以包含依赖项 - 手动创建
.nuspec文件并手动list your dependencies(similar ?) - 在您的
.nuspec文件上手动运行nuget pack
但一切都是手动的,这很愚蠢。即使是半自动的解决方案仍然很笨拙或半手动:
-
Create
.nuspectemplates - 似乎不包含依赖项,只包含元数据 -
nuget pack via build-event(步骤#5),您需要手动将其添加到每个项目中,它有its own quirks:
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
我将满足于从项目引用中自动创建.nuspec 清单的东西。那么理论上 + nuget build-event 可以汇总到 build-project/nuget 包中,这是我真正想看到的。
【问题讨论】:
-
我刚刚遇到了这个 VS 扩展 eyecatch.no/projects/nuget-package-template,我需要研究一下...
-
五年后,nuget 4.x 规范或包仍然无法确定依赖关系。
-
这个问题有更新吗?还是你还有这些问题?
-
我不久前放弃了这个,但请查看this answer报告的 NuProj
-
这个问题依然存在。 :(
标签: visual-studio build-automation nuget nuget-package