我想运行本地/内部 NuGet 存储库。我想我已经想出了如何“重用”现有的 NuGet 包,方法是使用 NuGet 将它们包含在一个虚拟项目中并扫描包文件以获取我的本地缓存.nupkg
文件,但是......
如何.nupkg
从项目创建一个 nuget 包 (),自动包含所有 dll
依赖项,而不仅仅是通过 NuGet 获取的那些?
具体来说:
- 创建解决方案
- 添加新项目
- 添加对各种
.dll
文件/其他项目的引用<-这是缺少的部分 - 通过包管理器 / cmdline / 随便添加 NuGet 包
- 有些东西会自动创建
.nupkg
根据我的发现,你应该做类似的事情
- 手动编辑您的
.csproj
文件以添加<BuildPackage>true</BuildPackage>
以包含依赖项 - 手动创建
.nuspec
文件并手动列出您的依赖项(类似?) - 手动
nuget pack
在您的.nuspec
文件上运行
但是一切都是手动的,这很愚蠢。即使是半自动的解决方案仍然很笨拙或半手动:
- 创建
.nuspec
模板- 似乎不包括依赖项,只是元数据 通过 build-event 进行 nuget pack(步骤 #5),您需要手动将其添加到每个项目中,并且它有自己的怪癖:
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
.nuspec
我将满足于从项目引用中自动创建清单的东西。然后理论上 + nuget build-event 可以汇总到 build-project/nuget 包中,这是我真正想看到的。