0

我正在使用 Visual Studio 2010 设置为我的应用程序创建安装程序。从文件系统编辑器中,我选择了在我的解决方案中创建的两个主要输出文件之一。我已经右键单击并为我的可执行文件创建了一个快捷方式。我已将快捷方式拖放到用户的程序菜单中。我构建了安装程序,一切都成功完成。我运行安装程序,一切都运行成功。现在我继续双击快捷方式,安装程序重新运行并失败!!!。我检查了快捷方式,它与我手动创建的用于比较的快捷方式不同。目标是灰色的。任何帮助将不胜感激!!!

4

2 回答 2

3

通过公布的快捷方式启动应用程序时,Windows Installer 会验证应用程序资源是否完好无损。如果缺少一个或多个资源,Windows Installer 会使用缓存的 MSI 自动重新安装它们。这就是执行第二次安装的原因。

在 Visual Studio 中创建的快捷方式会被公布,因此如果您安装的某些文件丢失,则会触发修复。

要确定触发修复的原因,您可以尝试以下操作:

  • 收到“准备安装”消息后打开事件查看器(您可以在开始菜单中搜索或启动“eventvwr.msc”)
  • 转到“Windows 日志”->“应用程序”</li>
  • 查找具有以下形式的“MsiInstaller”信息消息:

    事件类型:警告事件源:MsiInstaller 事件 ID:1001 描述:检测产品“{1F7D16F0-836D-4CE4-9123-D30B2F24A17B}”,在请求组件“{068153F4-B9E0-4745-9A47-”期间功能“FeatureId”失败833764D9D60C}'

GUID 在您的机器上会有所不同,但它们可以帮助您确定是哪个组件导致了问题。第一个 GUID 是您的包 ProductCode,第二个 GUID 用于有问题的组件。尝试创建安装日志并查看组件未正确安装的原因。

于 2012-04-19T11:02:27.803 回答
0

这最终成为注册表配置单元的问题。Visual Studio 2010 注册表编辑器允许我在 'HKEY_USERS(64)\S-1-5-20\Fileopen 中指定值。然而,这就是上述错误的原因。也就是说,当使用 Visual Studio 2010 中的设置和部署生成注册表时,您不能在注册表的这一部分中拥有值。我将这些值移动到 local_Machine 下,快捷方式就像一个魅力。

于 2012-05-01T22:52:23.273 回答