在visual studio中发布时包含DLL和其他文件

时间:2018-03-26 23:25:51

标签: visual-studio

我正在使用这个库https://github.com/rdvojmoc/DinkToPdf但是,库需要bin libwkhtmltox.dll和libwkhtmltox.so中的这两个文件 那么如何确保在发布期间复制文件? Visual Studio 2017社区版,项目ASP Core 2.0

1 个答案:

答案 0 :(得分:0)

您可以将这些文件添加到项目的根文件夹,并在其属性中将“复制到输出目录”设置为“始终复制”。然后,您的文件将被复制到bin文件夹-但是...

...这可能是不够的,因为:

  • 如果您通过nuGet添加了DinkToPdf,则在本地启动项目时,不会在bin文件夹中查找这两个文件。相反,它们将在C:\Users\<yourUsername>\.nuget\packages\dinktopdf\1.0.8\lib\netstandard1.6中查找。如果您在此处复制文件,则会找到它们。
  • 这些文件有两种不同的版本:32位和64位。您必须为您的系统复制正确的版本(在本地它可能是64位,但是如果在azure上发布,则默认是32位)。

我正在通过以下方式处理我的项目:

  • 我将DinkToPdf nuGet包添加到了.net核心项目中。
  • 我下载了libwkhtmltox文件here(它们位于“ v0.12.4”文件夹中)。
  • 我将64位文件复制到了C:\Users\<myUsername>\.nuget\packages\dinktopdf\1.0.8\lib\netstandard1.6
  • 我没有将文件添加到项目中,因为我发布为azure,并且那里的64位文件不起作用。
  • 我通过FTP将32位文件上传到了Azure Web应用程序的根文件夹中。

通过这种方式DinkToPdf既可以在我的开发计算机上运行,​​也可以在我的Azure Web应用程序中运行。