默認情況下,像Visual Studio 2008或2010這樣的新微軟IDE會創建帶有清單資源的exe文件。但我仍然在Visual Studio 6中有一些項目,我需要編譯它們以最大程度地兼容Win Vista和Win 7.
因此,我對清單資源有很多疑問:
1.是否需要清單資源爲Win7或WinVista創建應用程序?
2. WinVista和Win7在最小清單中需要什麼信息?
3. Windiws 7下的程序兼容性助手能錯誤顯示資源觸發嗎?
4. DLL是否需要清單資源?
5.我可以在哪裏獲得有關使用清單的信息?哪些程序必須具有清單資源?
回答
1.是否需要顯示資源來爲Win7或WinVista創建格式良好的應用程序?
沒有清單(帶有requestedExecutionLevel元素)Windows Vista和Windows 7使用啓發式方法來嘗試猜測應用程序是否爲安裝應用程序 - 這意味着正常的應用程序可能沒有可識別的原因開始觸發UAC提升預兆。
requestedExecutionLevel還告訴系統不虛擬化對受保護資源的訪問。
2. WinVista和Win7在最小清單中需要什麼信息?
至少是requestedExecutionLevel,所以UAC知道你是否 - 要求提升,並且不虛擬化對程序文件或HKLM的訪問。
3. Windiws 7下的程序兼容性助手可能出錯嗎?
帶有清單,Windows vista和7將認爲你是一個「現代」的應用程序,它只是被打破了。程序兼容性助手邏輯保留用於遺留應用程序 - 即沒有清單的應用程序或具有僅具有XP唯一條目的清單(即缺少requestedExecutionLevel)的應用程序。
4. DLL是否需要manifest資源?
從Windows 7開始只有當Dll使用它來綁定到並行程序集時。 MSDev Studio使用requestedExecutionLevel元素在Dll中創建清單,但實際上會產生無法在某些情況下成功加載的無效Dll。
5.我在哪裏可以獲得有關使用清單的信息?
在MSDN上:Isolated Applications and Side By Side Assemblies是我所知道的唯一的官方參考資料,即使嘗試描述清單模式以及如何使用它們。
總結:如果您正在開發 - 從而有可能測試您的應用程序的行爲 - 在Vista或Windows 7,這將是最好的,如果你提供一個清單,以避免你的申請被視爲傳統應用程序。
有幾個原因可能需要清單。首先,您需要告訴Windows您的程序瞭解UAC策略。這需要包含<requestedExecutionLevel>
元素的清單。如果缺少這些信息,Windows會將您的程序視爲傳統程序,並將不安全訪問重定向到註冊表和文件系統。寫入特權註冊表鍵被重定向到HKCU。將文件寫入特權目錄將重定向到獨立存儲。
如果您的程序使用存儲在Windows並行緩存中的DLL,則需要一個清單。如果你仍然使用VS6,這種情況不太可能發生。 WinSxS通過VS2005和VS2008程序用於MFC和CRT庫。但不是VS2010,受到MSFT客戶的普遍需求。
如果您要爲應用程序啓用可視化主題,則需要清單。從comctl32.dll版本6.0加載公共控件的現代版本所需的,它存儲在並行緩存中,而不是存儲在system32中的舊版本中。
如果您使用無註冊表的COM,則清單條目會替換通常寫入註冊表的內容,從而允許本地部署進程內COM服務器,您需要清單。
大部分情況是在Visual Studio的現代版本中自動執行的。
- 1. 語言必須具備哪些功能?
- 2. 必須在web_accessible_resources清單鍵中列出資源
- 3. Chrome擴展的資源必須在web_accessible_resources清單項中列出
- 4. 哪些PEP必須讀取?
- 5. Android Studio:我必須在哪裏放置資產和資源?
- 6. 每個好的CLI應用程序必須具備哪些基本參數?
- 7. Chrome擴展和JS注入問題 - 必須在web_accessible_resources清單中列出資源
- 8. 學習MSIL有哪些資源?
- 9. Android資源數量有哪些限制?
- 10. ClickOnce:我必須簽署ClickOnce清單和程序集嗎?
- 11. 我必須暫停下載updater安裝程序有哪些選項?
- 12. 我必須測試哪些iOS設備?
- 13. 具有單個屬性的資源。簽署一些有味道?
- 14. 具有單獨資源的通用應用程序iPad/iPhone?
- 15. Visual Studio應用程序的資源:「圖標清單」 VS「資源文件」發佈
- 16. 清除/重置資源提供程序
- 17. 顯示驅動程序本身使用了哪些CUDA資源?
- 18. 開發windows phone應用程序必須知道哪些編程語言?
- 19. [HTML/CSS/JavaScript/PHP]:必須寫入哪些訂單代碼?
- 20. TFS 2012 RC構建工作流程有哪些資源?
- 21. WxRuby有哪些資源:文檔,教程,示例?
- 22. 我必須提供哪些選項才能允許排序UITableView?
- 23. 將資源注入到.NET程序集的清單中post-build
- 24. WPF - 只清除某些資源字典
- 25. 我必須設計一個具有1000個表單的Web應用程序
- 26. 如何找出哪些資源沒有在Android應用程序中使用
- 27. 我必須保護在線頁面/目錄有哪些選項?
- 28. 應用程序崩潰:Logcat說你必須提供一個TextView的資源ID
- 29. 必須有非高清文件?
- 30. 瞭解ADT佈局工具中加載了哪些資源