我通过VS 2008为我们的C#应用程序创建了MSI安装程序并进行了安装。它在桌面上为我创建了一个快捷方式。我点击该快捷方式,安装过程再次运行,最后启动了我们的应用程序。昨天在添加一些自定义操作以创建数据库之前,这不是这样的。我没有在安装程序中重新创建快捷方式。为什么会这样呢?
我通过VS 2008为我们的C#应用程序创建了MSI安装程序并进行了安装。它在桌面上为我创建了一个快捷方式。我点击该快捷方式,安装过程再次运行,最后启动了我们的应用程序。昨天在添加一些自定义操作以创建数据库之前,这不是这样的。我没有在安装程序中重新创建快捷方式。为什么会这样呢?
手动使用Orca打开MSI文件。在Property表格中添加以下记录(不带引号):
Property = 'DISABLEADVTSHORTCUTS' Value = '1'
这也可以作为后期构建事件的一部分进行脚本化和运行。
MSI带有自动修复功能,会在使用快捷方式启动应用程序时检查是否存在安装的所有组件。
在您的情况下,可能有一个或多个组件已被删除,因此安装程序会再次启动以修复您的安装。
为了防止自动修复运行,请执行以下操作之一:
或者
从您的其他问题中看来,您的MSI是由Visual Studio Setup和Deployment Project创建的。不幸的是,Visual Studio内部没有修改关键路径的选项。您有以下选项:
这个快捷方式是指向你的应用程序还是安装程序?如果它指向安装程序并将其更改为应用程序,问题是否解决?
听起来系统认为安装已经损坏,并自动尝试修复。请查看事件日志(在应用程序事件日志中查找MsiInstaller的来源)。
您是否一直在构建多个副本?
我曾经遇到过同样的问题。在我的情况下,问题出在部署项目属性中的“制造商”和“产品名称”字段上。它需要与您的快捷方式指向的文件夹结构相同,否则您将在事件查看器中遇到“资源'C:\ Program Files(x86)[Manufacturer] [ProductName] \ '不存在”的错误。