2016-08-19 167 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构建。

相关问题