2011-07-15 39 views
2

在SO上也有类似的问题,例如thisthis但是都提示ClickOnce,我没有(不能)使用。使用VS创建的基本MSI安装程序需要管理员

我已经开始了一个新安装项目(InstallAllUsers =假),并且已经指定了Application Folder为[LocalAppDataFolder] [ProductName]的

其在安装时指向

C:\用户\非管理员\应用程序数据\本地\设置1 \

在Windows 7作为非管理员运行安装程序,我得到这样的:enter image description here

从我的角度来看,似乎所有的MSI确实是合作PY的一个文本文件到C:\用户\非管理员\应用程序数据\本地\设置1 \,的东西,可以手动完成,无需这个弹出显示

该错误消息说,有关“未知发布者” - 会发生这种情况对于任何简单运行的msi/exe? (即使它什么都不做)

我如何避免这个非管理员用户的对话框(一个ClickOnce)?

回答

3

要避免同意提示,您需要将包标记为“符合UAC”。 (请参阅MSI SDK中的“包的准则”。)它看起来像Visual Studio部署项目不支持那一点,因此您必须修改后构建脚本中的包(或使用其他工具,如Wix直接支持它)。

未经过Authenticode签名的任何软件包或可执行文件显示为“未知发布者”。

+0

鲍勃你知道现场修改后建?我已经在使用一个后期构建脚本来使RemovePreviousVersions完成它应该做的事情 – wal

+0

MSI SDK中的“包的指导原则”说:“忽略字计数摘要属性值的第3位以表明包可以需要提升,除非提升权限不需要安装这个软件包,否则不要包含这一点。“ –

+0

我使用以下命令在vbs脚本中更新'RemovePreviousVersions':UPDATE InstallExecuteSequence SET Sequence = 1450 WHERE Action ='RemoveExistingProducts'' - 经过大量的搜索后,我无法找到任何关于如何为“字数统计”摘要属性。我发现的最好的是http://blogs.msdn.com/b/jamesfi/archive/2007/05/02/making-an-msi-that-doesn-t-need-a-uac-lua-prompt.aspx其中提到了Package/@ InstallPrivileges属性。你有更多的信息可以帮助通过vbs做到这一点? – wal

相关问题