.NET安装程序项目 - 创建快捷方式每次都会重新安装

时间:2010-01-13 20:50:13

标签: .net windows-installer

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

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

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

有什么想法吗?

4 个答案:

答案 0 :(得分:5)

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

有关更详细的讨论,请参阅我的帖子:
http://ntsblog.homedev.com.au/index.php/2011/08/17/setup-app-config-during-msi-install-msi-re-installing/

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

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

我看到其他部署安装在Start-In属性错误时表现得很奇怪。

答案 3 :(得分:-2)

我认为我明白了......而且我倾向于不理解我到底在做什么。最初,我会右键单击“{project}(Active)项目的主要输出”并选择“创建快捷方式...”,这将创建一个快捷方式,从而触发安装程序。

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

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

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

谢谢大家的输入!