我有一个VB.Net项目,里面有许多我自己编写的类库,它们被设置为我程序的依赖项。
我想要做的是在它完成启动例程之前检查应用程序的文件夹中是否存在相应的DLL。简而言之,启动例程从序列化数据库文件读取到对象。然后,该对象在程序周围用于各种形式的数据存储。我发现如果一个依赖项被意外删除,程序将启动并生成未处理的异常错误。如果你按下“退出”程序将终止,但它也会破坏序列化的数据库文件。我想通过检查文件是否存在来防止这种情况。如果该文件不存在,它会通知您,按下okay会终止项目,但是以安全的方式不会破坏数据库。
我能够找到类似this的东西,但这似乎只是一个外部的dll文件。我的项目实际上有子项目,可以生成每个文件。
我感觉这是不可能的,因为dll实际上用于程序而不是外部dll。它将无法在没有它们的情况下运行,因此,如果没有它们将无法执行代码。但是,我想确定一个比我更有经验的人。
编辑: 我能看到的一种方法就是拥有一个“发射器”式的程序。此文件将检查是否存在所有文件,并且只有在存在时才会运行主可执行文件。但是,如果可能的话,我想尽量避免使用多个exe。
答案 0 :(得分:1)
如果表单加载代码导致对这些外部的引用,请将项目更改为从子主要开始:Project Properties -> Application -> StartUp Object -> Sub Main
添加模块和子主程序(或将Sub主程序添加到现有模块):
Public Sub Main()
' check for file exist on list of files here
' turn on styles
Application.EnableVisualStyles()
' start message pump
Application.Run(New frmMain) ' use your form name
' the form load will run at this point
End Sub
据推测,您可以显示消息框中缺少的文件或并退出。如果类库包含在表单上使用的控件,这将非常有用 - 您可以在创建表单之前对其进行测试。坦率地说,浏览和删除文件的用户可以得到他们应得的东西。