我有一個簡單的應用程序,我只是在win7(32位)上嘗試安裝程序(Innosetup)。應用程序需求提高特權在win7上運行,但不是遠景
我安裝後,桌面上的程序圖標會通過該屏幕通知用戶該應用程序需要提升權限。我認爲這是安裝程序的錯誤,並使用NSIS而不是相同的問題。
有沒有人知道爲什麼它在這臺電腦上,但不是在XP-32,WIN7-64位或Vista 64位?
如果我允許應用程序運行(答案是系統提示符),它只會出現「遇到錯誤,Windows正在尋找解決方案」的錯誤,然後關閉。
我有一個簡單的應用程序,我只是在win7(32位)上嘗試安裝程序(Innosetup)。應用程序需求提高特權在win7上運行,但不是遠景
我安裝後,桌面上的程序圖標會通過該屏幕通知用戶該應用程序需要提升權限。我認爲這是安裝程序的錯誤,並使用NSIS而不是相同的問題。
有沒有人知道爲什麼它在這臺電腦上,但不是在XP-32,WIN7-64位或Vista 64位?
如果我允許應用程序運行(答案是系統提示符),它只會出現「遇到錯誤,Windows正在尋找解決方案」的錯誤,然後關閉。
我可以回答你的問題的至少一個:
你不會看到在XP的盾牌圖標,因爲沒有在WinXP海拔的概念。 WinXP不支持在Vista中首次引入的UAC。
但是,Vista32/64和Win7-32/64都支持UAC,所以我無法想象爲什麼在Win7-32中會有不同的行爲。您是否在您測試的其他操作系統中修改了UAC設置?
這可能是不相關的安裝程序,但該快捷方式(您的應用程序?)
如果Windows認爲,一個快捷方式指向需要提升一個程序,它會顯示盾牌圖標覆蓋的目標。如果目標具有requireAdministrator的requestedExecutionLevel清單(如果您是admin,則爲highestAvailable),或者目標沒有「Vista」清單,並且Windows檢測到這是修補程序/安裝/安裝應用程序或應用程序與兼容性問題。
我猜你的應用程序沒有清單。如果你想刪除覆蓋,嘗試添加一個清單與requestedExecutionLevel asInvoker(不是說這將關閉虛擬化和其他兼容的東西爲該應用程序)
最有可能這與「程序兼容性助理」認爲你的應用程序是不兼容的(因爲您沒有指定它)並且「猜測」它需要提升。
嘗試添加正確Application Manifest,表明海拔是不需要的,而Vista和Windows 7都支持的操作系統...下面是一個例子:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="False">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
</application>
</compatibility>
</assembly>
我上有同樣的問題和你通過NSIS安裝程序安裝的Windows 7計算機:應用程序在啓動程序和桌面快捷方式上具有「屏蔽」圖標。
我們決定將其添加這種簡單的線條來創建我們的安裝程序的腳本NSIS:
RequestExecutionLevel user
http://nsis.sourceforge.net/Docs/Chapter4.html(搜索UAC)
希望這可以幫助解決您的問題。