2015-05-04 41 views
3

我們有幾個非.NET exes(例如PhantomJs),我們通過Process類從我們的.NET Web應用程序執行。如何使用NuGet包來分發可執行文件

我想將這些exes包裝到NuGet包中,以便它們可以可靠地位於不同的環境中(Web應用程序,控制檯應用程序和單元測試),而無需預先將每個可能需要的版本放置在某個神奇的位置在每臺機器上。

在NuGet中有這樣做的推薦方法嗎?

一種行之有效的方法,似乎有點笨重,就是將EXE作爲資源嵌入到包裝.NET DLL中,然後在運行時將其提取到文件系統。我想知道是否有更簡單的方法。

+0

NuGet用於開發時包管理。我認爲你不應該強迫它支持部署甚至是運行時場景。 –

+1

@LexLi雖然我能理解這個理念,但今天許多NuGet包已經做了這種事情(例如「安裝」javascript或CSS)。 – ChaseMedallion

回答

2

您可以將可執行文件添加到NuGet包的content文件夾中。當軟件包安裝在項目中時,可執行文件將作爲文件顯示在項目中。從NuGet docs

文件中的content文件夾安裝包時,被複制到你的應用程序 的根。

想到內容文件夾作爲您的目標應用程序的根 。例如,如果我想要一個包在目標應用程序的/images目錄中添加 圖像,請確保 將圖像放在包的Content/images文件夾中。

然後,您可以添加一個install.ps1腳本的NuGet包配置項目的可執行文件複製到輸出目錄,如the answer to this question描述。

相關問題