The Beginning
看到neuhawk介绍的ViewState察看工具ViewStateViewer 2.0挺不错,就下载了一个来试试。结果比意大利语页面更郁闷的是,下载回来的*.msi安装包在vista上老是安装不上,老是在安装快结束的时候说:The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2869.
我把同一个*.msi文件copy到我的xp机器上就可以正常安装,看来这个错误和安装无关而是vista的问题乐。想到传说中的UAC,于是决定换个角色执行这个msi文件。可是在*.msi上点击右键菜单里居然没有"Run as administrator"一项,晕倒。
解决办法,新建一个批处理文件,setup.bat,编辑这个bat文件,写上如下命令:
msiexec /i C:/VSA2Setup/Setup.msi
保存文件,然后再setup.bat上点击右键,就有"Run as administrator"项目了。
结果果然是UAC权限问题!
第二种方法:
Vista下,如果开启了 UAC 的话,程序运行时,如果用到 administrator 管理员权限,通常会自动弹出提示框,或者 在程序的右键菜单中,会有一项 “以管理员身份运行”。
而 msi 文件,却没有 “以管理员身份运行”这个选项,这就造成,如果msi需要管理员权限,就会报 2869 错误。
怎么办?
要解决这个问题,可以采用 ”曲线救国“ 的策略,利用一个 bat 文件包装一下 msi 来执行。咋样,这个方法比较巧妙吧?
新建一个bat文件, 例如: install.bat, 在 bat文件内写入 msiexec /i msi文件的路径
保存后, 在 install.bat 文件的右键菜单选择 ”以管理员身份运行“, 就OK了。
不仅仅是MSI,碰到其他的非可执行文件需要管理员权限的时候,这种方法依然可行的 :)
THE END