exe - 真正是 exe 命令的 Nuget 包?

标签 exe nuget

我正在研究一些 Nuget 的东西。我想知道 Nuget 是否适合分发 .exe 命令——或者就此而言 Nuget 是否仅用于引用项目(当然你也可以链接到 exe 而不是 dll——国际研究中心)。显然,我可以轻松创建一个控制台应用程序,然后引用 Nuget 包,但我想知道这是否总是必要的。此外,似乎与 gems 不同,没有 gems 的本地存储库,所以我觉得 .exe(s) 不是 Nuget 包的预期用途,但我不明白为什么需要在此限制它们时尚——或者我错过了什么?

最佳答案

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

tools - The tools folder of a package is for powershell scripts and programs accessible from the Package Manager Console. After the folder is copied to the target project, it is added to the `$env:Path (PATH) environment variable.



但是,如果您选择这样做,您应该注意以下几点:
  • 你是对的,与 RubyGems 不同,NuGet 没有系统级或机器级包的概念;包要么针对单个项目,要么(较少见)针对解决方案。因此,此可执行文件将放置在使用它的每个解决方案的包文件夹中。
  • NuGet Visual Studio 扩展将包的工具文件夹的路径添加到其控制台的 PATH 环境变量中,以便您可以方便地执行其中的程序。在 Visual Studio 之外,当使用其他 NuGet 客户端(例如 nuget.exe)时,不会有任何自动 PATH 处理,因此您必须处理获取程序路径。
  • 此 NuGet 功能专为与开发项目有某种关联的脚本和可执行程序而设计(例如,代码生成器、操作项目文件的工具、与模拟器或开发服务器等框架相辅相成的工具等)。虽然您当然可以以非设计方式使用此功能,但如果您希望交付与项目开发无关的系统程序,您可能需要查看 Chocolatey , “一个机器包管理器,有点像 apt-get,但在构建时考虑到了 Windows。”
  • 关于exe - 真正是 exe 命令的 Nuget 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9494144/

    相关文章:

    Groovy:如何将 .groovy 转换为 .exe

    c++ - 将 C++ 应用程序从 dll 打包到 exe

    visual-studio - FxCopAnalyzers : An instance of analyzer cannot be created

    mono - 在 Linux 环境下使用 xbuild 构建 .NET 项目

    asp.net-core - 如何在 dotnet Core 中添加 moq 作为依赖项?

    c# - Entity Framework 4.3.1 到 6 EDMX (ObjectContext)

    java - 检查一些exe程序是否在windows上运行

    php - exec() 似乎不执行 .exe

    Java 代码,安全

    c# - 使用 .csproj 中的 MsBuild 和 dotnet pack 命令将文件从 Nuget 包复制到输出目录