Nuget包是真正的exe命令吗?

时间:2012-02-29 05:44:30

标签: exe nuget

我正在研究一些Nuget的东西。我想知道Nuget是否适合分发.exe命令 - 或者就此而言,如果Nuget仅用于引用项目(当然你也可以链接到exe而不是dll - IIRC)。显然,我可以轻松地创建一个控制台应用程序,然后引用Nuget包,但我想知道是否应该始终这是必要的。此外,它似乎不像宝石,没有宝石的本地回购,所以我觉得.exe(s)不是Nuget包的预期用途,但我不明白为什么他们需要限制在这时尚 - 或者我错过了什么?

1 个答案:

答案 0 :(得分:18)

您可以在NuGet包中包含可执行程序。来自Creating and Publishing a Package

  

工具 - 软件包的tools文件夹用于powershell脚本和程序   可从Package Manager控制台访问。将文件夹复制到目标后   项目,它被添加到`$ env:Path(PATH)环境变量。

但是,如果您选择这样做,您应该注意一些事项:

  • 你是对的,与RubyGems不同,NuGet没有系统或机器级包的概念;软件包既可以针对单个项目,也可以(更少)针对解决方案。因此,对于使用它的每个解决方案,此可执行文件将放在包的文件夹中。
  • NuGet Visual Studio扩展将软件包工具文件夹的路径添加到其控制台的PATH环境变量中,因此您可以方便地执行其中的程序。在Visual Studio之外,当使用其他NuGet客户端(例如nuget.exe)时,将不会有任何自动PATH处理,因此您必须处理获取程序的路径。
  • 此NuGet功能适用于以某种方式与开发项目相关的脚本和可执行程序(例如,代码生成器,操纵项目文件的工具,补充模拟器或开发服务器等框架的工具等)。虽然您当然可以以未设计的方式使用此功能,但如果您希望提供与项目开发无关的系统程序,您可能需要查看Chocolatey,“a机器包管理器,有点像apt-get,但是考虑到了windows。“