从VS 2008创建的msi创建时,桌面快捷方式图标上缺少UAC屏蔽覆盖

时间:2010-04-11 08:51:42

标签: installation uac overlay shortcut

我创建了一个安装程序来使用Visual Studio 2008部署我的VBNet程序。在这个安装程序中,我创建了一个快捷方式,用于安装在用户桌面上的“主输出”。

现在,一切正常。该程序安装在“C:\ Program Files”下,并在桌面上创建快捷方式。此外,当我使用此快捷方式时,UAC会提示我以管理员身份自动运行此程序。到目前为止,这么好......

但是!我的桌面图标没有UAC屏蔽覆盖,即使程序是使用清单编译的,表明它必须以管理员身份运行。此外,如果我在安装后手动在桌面上创建一个新的快捷方式到同一个可执行文件,这个新的快捷方式将有盾牌覆盖!

我尝试重新启动并删除iconCache.db文件,但它无效。

所以我的问题是:如何在最初安装时使用UAC屏蔽覆盖显示我的桌面快捷方式。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用non-advertised更改msi文件中的一个表格行,也可以使用后期制作活动由visual studio自动更改一个表格行Orca

转到项目的属性,然后输入以下PostBuildEvent

cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOuputPath)" "INSERT INTO Property(Property, Value) VALUES ('DISABLEADVTSHORTCUTS', '1')"

WiRunSql.vbs文件可从microsoft

获得

此致 LUMO

答案 1 :(得分:0)

没有任何更多细节,我唯一的猜测是你在目标存在之前创建快捷方式,以便窗口无法看到清单。

答案 2 :(得分:0)

我建议安装程序创建的图标不指向.exe文件,而是指向注册表项。打开快捷方式属性,如果快捷方式选项卡上的目标字段已禁用且包含应用程序的名称,则情况就是如此。

您可以将图标设为非广告,然后创建的快捷方式将指向.exe文件。但是,在这种情况下,如果.exe丢失,则无法自动修复安装。