ClickOnce 部署的应用程序找不到外部 DLL
ClickOnce deployed application can't find external DLL
我有一个使用外部 dll 文件 (Winppla.dll) 的 WinForms 应用程序,因此我可以在我的 Argox 打印机中打印标签。由于我无法将 dll 文件添加为对项目的引用,因此我在 class 上使用了命令 [DllImport("Winppla.dll")]
。
当我 运行 在 Visual Studio 中的项目时,它工作得很好。
然后我使用 ClickOnce 发布了我的应用程序,当我尝试 运行 应用程序时,我收到消息错误,指出找不到 Winppla.dll,即使我正在 运行 上我的机器。
我试过:
- 发布前将文件复制到项目的bin文件夹下
- 发布前将文件复制到应用程序的packages文件夹中
- 将文件复制到 Application Files 文件夹中的最新版本文件夹(在应用程序的发布位置)
- 将文件添加为项目的资源
- 在项目中添加一个包含该文件的文件夹作为引用路径
但其中 none 有效。
该项目也使用了 SAP CrystalReports,并且运行良好。
关于如何让它发挥作用有什么想法吗?
按照问题评论区@Bearcat9425的说明,终于解决了问题:
- 将文件复制到项目文件夹并将其包含在项目中
(在解决方案资源管理器上,单击 'Show All Files',然后右键单击文件和 select 'Include In Project')
- 在我的发布选项卡上将文件标记为应用程序文件之一
(右键单击我的项目和 select 'Properties',然后转到发布选项卡并单击 'Application Files' 并确保 Winppla.dll 标记为 'Include')
- 将 Winppla.dll 文件复制到我们服务器中的一个共享文件夹(我把它放在我放置应用程序设置的同一文件夹中)
- 在每个 DllImport 命令中写入文件共享位置的完整路径:
[DllImport(@"\the-path-on-the-server\Winppla.dll")]
- 发布!
我有一个使用外部 dll 文件 (Winppla.dll) 的 WinForms 应用程序,因此我可以在我的 Argox 打印机中打印标签。由于我无法将 dll 文件添加为对项目的引用,因此我在 class 上使用了命令 [DllImport("Winppla.dll")]
。
当我 运行 在 Visual Studio 中的项目时,它工作得很好。
然后我使用 ClickOnce 发布了我的应用程序,当我尝试 运行 应用程序时,我收到消息错误,指出找不到 Winppla.dll,即使我正在 运行 上我的机器。
我试过:
- 发布前将文件复制到项目的bin文件夹下
- 发布前将文件复制到应用程序的packages文件夹中
- 将文件复制到 Application Files 文件夹中的最新版本文件夹(在应用程序的发布位置)
- 将文件添加为项目的资源
- 在项目中添加一个包含该文件的文件夹作为引用路径
但其中 none 有效。
该项目也使用了 SAP CrystalReports,并且运行良好。
关于如何让它发挥作用有什么想法吗?
按照问题评论区@Bearcat9425的说明,终于解决了问题:
- 将文件复制到项目文件夹并将其包含在项目中 (在解决方案资源管理器上,单击 'Show All Files',然后右键单击文件和 select 'Include In Project')
- 在我的发布选项卡上将文件标记为应用程序文件之一 (右键单击我的项目和 select 'Properties',然后转到发布选项卡并单击 'Application Files' 并确保 Winppla.dll 标记为 'Include')
- 将 Winppla.dll 文件复制到我们服务器中的一个共享文件夹(我把它放在我放置应用程序设置的同一文件夹中)
- 在每个 DllImport 命令中写入文件共享位置的完整路径:
[DllImport(@"\the-path-on-the-server\Winppla.dll")]
- 发布!