如何使我的 VB.net Windows 窗体应用程序不受外部依赖

How to make my VB.net Windows form application external dependency free

提问人:Robin Singla 提问时间:10/22/2023 更新时间:10/22/2023 访问量:53

问:

嗨,我有一个用 VB.net 开发的 Windows 表单应用程序,它需要引用位于 C:\Program Files\MELSOFT\EZSocketNc 的 2 个.dll文件,名为 EZNcAut324.dll 和 EZSocketNc.dll我将其复制到名为 lib 的本地项目文件夹并引用相同的文件。

现在的问题是位于C:\Program Files\MELSOFT\位置的EZSocket文件夹是通过安装一个包含大量dll的库(包括我们引用的两个文件)创建的。该应用程序在我的笔记本电脑上完美运行,但是一旦我在另一台未安装此库的笔记本电脑上运行它,可执行文件就无法打开。

在诊断此问题时,我发现即使我更改了 PC 中文件夹的名称,该位置也需要包含所有文件的文件夹才能运行可执行文件,我发现这些文件不是 .net 程序集文件,因此需要对此文件夹中的文件进行一些引用,但我不确定。

我只想将所有必需的文件都包含在项目文件夹中或捆绑在 .exe 中,我是这个参考级别的新手,这些文件的库是付费的,因此无法安装在我们将要运行的每台 PC 中。

请帮助我使其成为一个独立的防御。enter image description here

.NET vb.net visual-studio

评论

0赞 Steve 10/22/2023
如果您的程序需要这些DLL,那么我看不到任何解决问题的方法,但是使用这些DLL所需的所有内容分发您的程序。您应该查看您的许可选项,并检查是否有办法分发它们
1赞 Hans Passant 10/22/2023
如果无法在其他电脑上安装此 COM 组件,则无法在代码中使用它。
0赞 Robin Singla 10/22/2023
@Steve我已准备好将这些dll放在本地项目文件夹中,但似乎还不够,需要将整个文件夹放在该位置
0赞 Steve 10/22/2023
仅仅复制整个文件夹可能还不够。正如@HansPassant所说,如果这是一个 COM 组件,您还需要在客户端 PC 上进行一些配置以使其正常工作(IE 注册通常在数据包安装期间完成的组件,或者查看是否有某些批次调用 regedit.exe)
0赞 nbk 10/22/2023
您可以创建一个安装项目(必须安装的扩展)并添加所有文件,并标记必须注册的文件

答: 暂无答案