【问题标题】:.NET Installer Project - Create shortcut keeps reinstalling everytime.NET 安装程序项目 - 创建快捷方式每次都会重新安装
【发布时间】:2010-01-13 20:50:13
【问题描述】:

我有一个构建 exe 的 .NET 项目 (VS2008 .NET 3.5)。我有一个安装程序项目作为为该 exe 创建安装程序的同一解决方案的一部分。

在安装程序的文件系统中,我在用户程序菜单下为我的应用程序创建了一个文件夹。在那个新文件夹中,我转储了 .exe 和 .exe.config。我还在同一个文件夹中创建了一个快捷方式,并在桌面上创建了一个快捷方式。通过右键单击“应用程序(活动)的主要输出”并选择“创建应用程序(活动)的主要输出的快捷方式”来创建快捷方式。

一切安装正常。如果我单击 .exe 它运行良好。但是,当我单击任一快捷方式时,它会弹出这个带有进度条的小“安装”弹出窗口。我不知道它是从哪里来的,也不知道它在做什么。

有什么想法吗?

【问题讨论】:

  • 弹窗消失了吗?它是在每次运行应用程序时弹出,还是仅在新安装后弹出?
  • 每次我点击快捷方式都会弹出安装程序。它似乎没有安装任何东西,因为它的速度很快。

标签: .net windows-installer


【解决方案1】:

产品不断重新安装的原因是第二个快捷方式(不断重新安装)是“广告快捷方式”。如果您触摸应用程序目标部署目录中的任何内容,那么下次运行应用程序时,它将尝试重新安装以解决问题。

查看我的帖子以获得更详细的讨论:
http://ntsblog.homedev.com.au/index.php/2011/08/17/setup-app-config-during-msi-install-msi-re-installing/

【讨论】:

    【解决方案2】:

    如果您查看 Windows 事件查看器 (eventvwr.exe) 并转到“应用程序日志”,您应该会看到归因于“Windows Installer”的事件。这将为您提供导致修复活动的原因。它将通过其 GUID 识别组件,因此它看起来不会立即有用。

    在 ORCA 或 InstEd 等工具中打开安装程序,这些工具是 MSI 编辑器,可在组件表中搜索错误日志中标识的 GUID。

    此时你至少知道“什么”了。我想说“为什么”将是一个包含很多变量的答案,如果不使用此过程来更好地理解您正在处理的问题,则很难确定。

    【讨论】:

      【解决方案3】:

      这是一个长镜头......但也许检查捷径的“开始”属性。希望它被设置为主要输出的安装位置。

      我看到其他部署安装在 Start-In 属性错误时表现异常。

      【讨论】:

      • 不。这是我检查的第一件事。 “开始于”属性是正确的。关于快捷方式的一件奇怪的事情是“目标”属性受到保护。此外,它不是 .exe 的完整路径,而是以某种方式解析然后使用快捷方式的应用程序的名称。另外有趣的是,如果我创建一个新项目并创建一个安装程序,我看不到同样的问题。这个特定项目一定很时髦。
      • 我看到将测试 .exe 放入“开始菜单/测试文件夹”的行为相同。它附带安装,但 确实 启动程序。也许在“应用程序文件夹”而不是“用户的程序菜单”中创建一个文件夹(并在那里安装主输出)并从该位置执行快捷方式。
      • 这就是我有点受不了的地方。我正在为其开发的用户没有足够的权限安装到应用程序文件夹中。所以我必须安装到用户的程序菜单中
      • 嗯...也许您可以安装到用户的“特殊”文件夹之一。您可以右键单击根“目标机器上的文件系统”并获取它们的列表。我会尝试查找“我的文档”文件夹或使用“应用程序数据”或“个人数据”文件夹。
      【解决方案4】:

      我想我想通了……它倾向于我不明白我到底在做什么。最初,我会右键单击“{project}(活动)项目的主要输出并选择“创建快捷方式...”,这将创建一个快捷方式,然后启动安装程序。

      这次我所做的不同之处是右键单击“用户程序菜单”下的文件窗格并选择“创建 {project} 的快捷方式”。在弹出窗口中,向下导航到“用户程序菜单”并选择“{project} 的主要输出(活动)”项,它将创建一个安装时可以正常工作的快捷方式。

      安装应用程序后我能看到的唯一区别是,运行的目标是指向项目的 exe。不起作用的将应用程序的名称列为目标。

      在安装程序项目中为完全相同的项目创建快捷方式的两种不同方式。一定有一个我不理解的根本区别。现在我知道如何让它发挥作用。

      感谢大家的投入!

      【讨论】:

      • 创建快捷方式的两种方法都创建相同的输出。安装程序弹出是由于快捷方式是“广告快捷方式”引起的。 jcrawford74 的回答让我走上了正确的道路。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多