如何使用NuGet包分发可执行文件

时间:2015-05-04 19:03:02

标签: .net process nuget exe

我们有几个非.NET exes(例如PhantomJs),我们通过Process类从我们的.NET Web应用程序执行。

我想将这些exes包装到NuGet包中,以便它们可以可靠地放置在不同的环境(Web应用程序,控制台应用程序和单元测试)中,而无需将每个可能需要的版本预先放置在某个魔术位置上每台机器。

是否有建议的方法在NuGet中执行此操作?

一种有效但似乎有点笨拙的方法是将EXE作为包装.NET dll中的资源嵌入,然后在运行时将其提取到文件系统。我想知道是否有更简单的方法。

1 个答案:

答案 0 :(得分:6)

您可以将可执行文件添加到NuGet包的content文件夹中。当程序包安装在项目中时,可执行文件将在项目中显示为文件。来自NuGet docs

  

content文件夹中的文件将复制到应用程序的根目录   什么时候安装包。

     

Content 文件夹视为根目录   您的目标应用程序。例如,如果我想要一个包添加   目标应用程序的/images目录中的图像,请确保   将图像放在包的Content/images文件夹中。

然后,您可以向NuGet包添加install.ps1脚本,以配置项目将可执行文件复制到输出目录,如the answer to this question中所述。