使用chocolatey或nuget作为将插件添加到另一个包中的工具的包

时间:2013-07-22 18:43:11

标签: .net msbuild nuget dependency-management chocolatey

这有点难以解释,但我会尽我所能。如果您有任何疑问,请询问......

问题

我有一个nuget包A,它引用了我的另一个包B中的工具。该工具是一个msbuild任务和一个可执行文件,并使用MEF。包A向包B添加插件,并在另一个项目引用包A时添加目标。当另一个项目引用包A时,nuget将插入目标引用项目。

现在,程序包B中的任务确实具有指向查找插件位置的属性。所以我并不担心在这里和那里复制dll。但是,我

  1. 我应该将巧克力用于(B),还是nuget,或者两者兼而有?
  2. 包中工具共享的最佳做法是什么?
  3. 在巧克力,nuget或两者兼有的软件包中使用插件的最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

基于我目前理解的内容的答案:

  1. NuGet用于分发软件库(DLLS),用于在软件项目中进行引用,以构建在Chocolatey上分发的工具/应用程序/框架。
  2. 您需要详细说明这个项目。
  3. Chocolatey发布了一些命名约定,详细说明了包内容:https://github.com/chocolatey/chocolatey/wiki/CreatePackages#naming-your-package

答案 1 :(得分:0)

好的,所以我和一些人交谈并浏览了很多谷歌并找到了答案。

  1. 只是努力。 “chocolatey专注于应用程序和工具,而不一定关注开发人员。” - ChocolateyFAQs。我使用的工具更像是一个以开发人员为中心的工具而不是自己使用的工具。
  2. 在tools文件夹中。 duh ...“软件包的tools文件夹用于powershell脚本和程序” - Creating And Publishing A Package即使软件包B没有引用,它也是一个包含一个工具的软件包,该工具将被另一个软件包用于开发目的。这两者都是想要使用软件包A的项目所必需的。我基本上做的是共享一个工具并通过插件扩展它。
  3. 不幸的是,在没有知道其他软件包的目录的情况下,我没有找到很多关于从另一个软件包访问软件包的信息。因为版本。因此,当我更新软件包B时,我必须修改软件包A以使用软件包B的新版本号。就我而言,目标文件。