2016-08-19 214 views
3

我想爲我的.NET Core項目安裝phantomJS nuget軟件包。該Nuget軟件包包含一個.exe文件(phantomjs.exe)。 (C:\ Users \ .nuget \ packages \ PhantomJS \ 2.1.1 \ tools \ phantomjs)PhantomJS nuget軟件包不會在.NET Core項目中安裝.exe文件

構建或發佈解決方案不會複製bin或publish文件夾中的.exe文件。

我是否必須在我的project.json中添加一個特定的配置,以在發佈或構建時自動複製.exe?

+0

您可以使用postcompile/postpublish腳本複製文件或將其包含在publishOptions include部分中。 – Pawel

回答

6

當前PhantomJS nuget包(v.2.1.1)面向經典的僅限於windows的.NET項目; phantomjs.exe包含在'tools'文件夾中,並且在安裝時,nuget執行腳本(install.ps1),該腳本使用CopyToOutputDirectory = true選項將「phantomjs.exe」添加到項目中。不幸的是,netcore項目不支持安裝腳本;由於PhantomJS nuget軟件包不包含任何託管程序集,因此可以爲netcore項目安裝它,但忽略「工具」文件夾。

可以使用project.json中的「腳本」部分(「@pawel」提到的「postcompile」/「postpublish」)來顯式複製phantomjs.exe,但似乎沒有任何可接受的方式來解析路徑PhantomJS nuget包在構建過程中。無論如何,PhantomJS nuget軟件包僅包含窗口PhantomJS版本,如果您計劃在Linux或OS-X下運行.NET Core項目,則該版本無用。

也許最好避免爲netcore項目使用PhantomJS nuget,並創建自定義構建腳本(使用「postcompile」執行),該構建腳本爲您的目標運行時平臺下載和提取適當的phantomjs構建。

相關問題