Installation MSI升级只复制安装文件夹中的DLL,其余的在第一次启动时复制

Installation MSI升级只复制安装文件夹中的DLL,其余的在第一次启动时复制,installation,windows-installer,setup-deployment,Installation,Windows Installer,Setup Deployment,我有一个与msi安装程序一起部署的应用程序。这是第二版。安装此安装的最新版本时,安装程序会将所有内容复制到程序文件夹(DLL、exe、resourcefiles)中 但是当将这个应用程序从版本1升级到版本2时,会发生一些奇怪的事情。升级正常,它将删除以前的文件并将DLL复制到文件夹中,并完成安装向导 当我现在查看安装文件夹时,只有DLL存在。 当我第一次从“开始”菜单运行应用程序时,它会触发一个MSI快捷方式,安装程序会再次出现以进行一些配置。现在它复制可执行文件和资源文件并启动应用程序 为什么

我有一个与msi安装程序一起部署的应用程序。这是第二版。安装此安装的最新版本时,安装程序会将所有内容复制到程序文件夹(DLL、exe、resourcefiles)中

但是当将这个应用程序从版本1升级到版本2时,会发生一些奇怪的事情。升级正常,它将删除以前的文件并将DLL复制到文件夹中,并完成安装向导

当我现在查看安装文件夹时,只有DLL存在。 当我第一次从“开始”菜单运行应用程序时,它会触发一个MSI快捷方式,安装程序会再次出现以进行一些配置。现在它复制可执行文件和资源文件并启动应用程序


为什么安装程序不复制升级中的所有内容?我希望这是一种行为,因为在升级过程中,首次启动此应用程序的用户可能没有足够的访问权限进行此类操作。Windows安装程序使用来确定是否安装了文件。要在升级过程中安装所有文件,您可以确保:

  • 所有文件都放置在具有版本控制文件作为关键成员的文件中
  • 与旧安装相比,所有关键成员文件的文件版本都更高
Windows Installer根据组件的关键成员来评估是否要安装该组件。因此,如果密钥成员文件的版本高于计算机上的版本,则安装该组件


另一种解决方案是将表中的Version列设置为高值,例如65535.65535.65535.65535。这样,Windows安装程序将总是考虑MSI中的文件比目标机器上安装的文件更新。

您好,谢谢。但文件复制正确。只是在安装完成并关闭后,我从启动菜单启动应用程序之前,没有复制一些文件。(显然,从“开始”菜单上的MSI快捷方式)。如何在安装过程中复制所需的每个文件?如果某些文件丢失,那是因为它们未安装。它们之所以没有安装,是因为Windows Installer处理升级的方式(我在帖子中解释了这一点)。当从“开始”菜单启动应用程序时,Windows Installer会自动执行修复以安装它们。也许这就是原因。它以前是vs2005 sln,现在是vs2010 sln,带有Visual Studio 2010 Web部署项目RTW。也许转换出了问题。我会查出来的,再次谢谢你,转换不重要。尝试为升级创建详细日志。您很可能会看到一些组件没有安装,因为“存在具有更高版本密钥文件的相同组件”。谢谢您的帮助。实际上,真正的问题是当我将一个部署项目从vs2005升级到vs2010时,发生了一些奇怪的事情,我必须将属性“BacwardCompatibleIDGeneration”设置为true。添加RemousMode=amus后,一切都很顺利:)