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

问题描述 投票:1回答:1

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

我试图:

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

但这些都不起作用。

该项目也使用SAP CrystalReports,它很好用。

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

c# winforms dll clickonce
1个回答
0
投票

按照问题注释部分的@ Bearcat9425说明,我终于解决了问题:

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