ClickOnce部署的应用程序找不到外部DLL

时间:2019-10-21 13:20:15

标签: c# winforms dll clickonce

我有一个使用外部dll文件(Winppla.dll)的WinForms应用程序,因此可以在Argox打印机中打印标签。由于无法将dll文件添加为对项目的引用,因此在类中使用命令[DllImport("Winppla.dll")]。 当我在Visual Studio中运行项目时,它可以完美运行。 然后,我使用ClickOnce发布了我的应用程序,当我尝试运行该应用程序时,出现消息错误,指出即使我在计算机上运行Winppla.dll,也找不到该文件。

我试图:

  • 在发布之前将文件复制到项目的bin文件夹中
  • 在发布之前将文件复制到应用程序的packages文件夹中
  • 将文件复制到“应用程序文件”文件夹中的最新版本文件夹(在应用程序的发布位置)
  • 将文件添加为项目上的资源
  • 在项目上添加一个包含文件作为参考路径的文件夹

但是这些都不起作用。

该项目还使用SAP CrystalReports,并且工作正常。

关于如何使其工作的任何想法?

1 个答案:

答案 0 :(得分:0)

按照问题注释部分中的@ Bearcat9425指示,我终于解决了问题:

  1. 将文件复制到项目文件夹,并将其包含在项目中 (在解决方案资源管理器上,单击“显示所有文件”,然后右键单击该文件并选择“包含在项目中”)
  2. 在“发布”选项卡上将该文件标记为应用程序文件之一 (右键单击我的项目,然后选择“属性”,然后转到“发布”选项卡,然后单击“应用程序文件”,并确保Winppla.dll被标记为“包含”)
  3. 将Winppla.dll文件复制到服务器中的共享文件夹(我将其放置在放置应用程序设置的文件夹中)
  4. 在每个DllImport命令上,将完整路径写入文件共享位置:[DllImport(@"\\the-path-on-the-server\Winppla.dll")]
  5. 发布!