我已经开发了一个命令行实用程序,它将.NET程序集作为输入,并生成XML作为输出以供其他产品使用。

理想情况下,我会拥有它:

  • 通过NuGet作为解决方案级别的软件包
  • 交付
  • 在项目级别的生成后事件中可访问
  • 我被卡住的位置:在该生成后事件中可访问,只需指定不带路径的命令名即可
  • 即MyTool.exe/i $ {TargetPath)而不是..\packages\ToolName-1.0.0.0\tools\MyTool.exe/i $ {TargetPath)

  • 我已经可以做的前两件事,以及上面的构建后事件命令都可以正常工作,但前提是我必须先打开Package Manager控制台(即使我没有键入任何命令,也必须打开它)-貌似它在启动时使用路径做一些很酷的事情,因此我不必指定..\packages\ToolName-1.0.0.0\tools\MyTool.exe。

    我的NuGet包是否可以使用Init.ps1脚本(或其他某种机制)来调整路径,以便在编写构建后事件时无需指定工具的完整相对路径,或者可以包含run工具作为自动生成后的步骤?

    注意-我接受NuGet可能不是提供这种工具的理想工具,但它将很方便。

    最佳答案

    Chocolatey(从技术上讲,它符合使用NuGet的资格)具有非常酷的神奇“填充”功能。

    简而言之,您软件包中的任何可执行文件都将自动在PATH上可用。 It's very cool.

    10-05 17:51