.net 如何让我的自动更新程序替换程序文件?

.net 如何让我的自动更新程序替换程序文件?,.net,installation,auto-update,.net,Installation,Auto Update,我们开发了一个程序,检查我们的网站,看看是否有新版本可用。当新版本可用时,下载程序启动并检索文件,然后将整个文件夹复制到源上,并使用新版本重新启动程序 问题是,当我们第二次运行程序时,软件实际上并没有更新——也就是说,刚刚下载和复制的文件已恢复为原始版本 有没有办法防止这种情况发生?我们通常使用.NET 2008中的安装和部署项目来构建应用程序安装程序。我认为您可能需要确保正在更新的二进制文件不是安装中的关键文件。默认情况下,所有二进制文件都是关键文件。这实际上为安装中的每个文件创建了一个唯一的

我们开发了一个程序,检查我们的网站,看看是否有新版本可用。当新版本可用时,下载程序启动并检索文件,然后将整个文件夹复制到源上,并使用新版本重新启动程序

问题是,当我们第二次运行程序时,软件实际上并没有更新——也就是说,刚刚下载和复制的文件已恢复为原始版本


有没有办法防止这种情况发生?我们通常使用.NET 2008中的安装和部署项目来构建应用程序安装程序。

我认为您可能需要确保正在更新的二进制文件不是安装中的关键文件。默认情况下,所有二进制文件都是关键文件。这实际上为安装中的每个文件创建了一个唯一的注册表项。Windows将监视这些文件,并在删除或更改任何文件时复制回其缓存的文件副本

我不知道如何使二进制文件不从部署项目中键入。它是Installshield项目中的一个逐文件选项

如果使用安装程序安装存根或应用程序的入口点,并复制其余依赖项,Windows installer将不会在超出范围的修改后修复安装