Vb.net 如何覆盖更新过程中的文件
我正在尝试在VB.NET中为我的应用程序创建更新程序,不,我不想使用clickonce,它很糟糕,因为我必须处理管理自签名证书等问题 我知道检查新更新文件的代码: 我还知道用于指定这些文件下载到何处的代码,问题是我不想只下载1.exe…我想下载所有最新的构建文件,这些文件本应上载到我的服务器,这些文件本应取自我项目的Bin\release文件夹 然后,当更新程序将文件下载到某个目录时,它将转到应用程序的目录,并以某种方式覆盖/替换所有已更改的文件…可能是使用哈希或其他方法 我不知道如何进行这项工作。我只知道这个 更新程序和主应用程序必须分开,以便更新程序可以在应用程序关闭时进行替换,从而不会出现文件使用错误。更新程序应用程序完成后,它将从新的exe启动主应用程序Vb.net 如何覆盖更新过程中的文件,vb.net,updates,auto-update,Vb.net,Updates,Auto Update,我正在尝试在VB.NET中为我的应用程序创建更新程序,不,我不想使用clickonce,它很糟糕,因为我必须处理管理自签名证书等问题 我知道检查新更新文件的代码: 我还知道用于指定这些文件下载到何处的代码,问题是我不想只下载1.exe…我想下载所有最新的构建文件,这些文件本应上载到我的服务器,这些文件本应取自我项目的Bin\release文件夹 然后,当更新程序将文件下载到某个目录时,它将转到应用程序的目录,并以某种方式覆盖/替换所有已更改的文件…可能是使用哈希或其他方法 我不知道如何进行这项
非常感谢大家的帮助。我目前正在进行一个项目,我必须实施类似的更新方法。这个项目很长,需要一些时间才能完成。但这就是我计划应用更新的方式:
- 使用Process.Start直接从启动器中执行更新程序
- 如果这导致了问题,那么作为第二种方法,从Process.Start启动命令提示符,从命令提示符执行另一个程序(更新程序),关闭命令提示符,然后退出启动器
- 来自服务器的更新可用性信息将包括应用程序的新版本号。为了提供所有要更新的文件,我将将所有文件压缩(zip)到一个名为Application.Version_No(由服务器提供)的文件中
- 下载完成后,将它们解压缩(解压)到名为相同应用程序的文件夹中。版本号
- 解压后,此(Application.Version_No)文件夹中的所有文件都将复制到应用程序的Bin文件夹中李>
- 一种方法是只在压缩(zip)文件中包含那些需要替换为旧文件的文件,然后在下载完成后,直接将其解压缩到Bin文件夹或将其解压缩到指定文件夹,然后将所有文件复制到Bin文件夹李>
- 作为另一种看起来有点冗长的方法,可以为下载准备一个额外的帮助文件(XML、文本或任何其他格式)。
- 此帮助文件包含更新文件的信息,如每个文件的版本号、复制位置等
- 这些文件可以下载到名为新应用程序版本的特定文件夹中
- 将所有必需的文件下载到特定文件夹后,处理助手文件中提到的每个文件。将每个旧文件的版本与新下载的文件进行比较。如果它是最新的,则将其替换到帮助文件中提到的文件夹中
- 在复制和替换之前,可能会验证所有下载之间的另一个步骤
应该有一种方法可以消除守护进程的使用,如果我找到了,我会更新它 嗯,因为你认为你在使用自签名证书时遇到了问题,所以你要自己重新编写所有这些?您对证书有哪些具体问题?让我们忘记单击一次。如果你能在我问的问题上帮我的忙,那就太好了。你的问题到底是什么?如果更新程序知道应用程序的安装位置,并且在某些情况下正在运行,那么它应该能够替换文件overwriting@UriahsVictor您可以循环处理下载文件的目录/文件夹,并将所有文件复制到应用程序的Bin文件夹。有关更多详细信息,请参阅@UriahsVictor。或者,您也可以在下载中使用包含rega信息的特定文本文件