Windows應用程序清單的語法非常鬆散 - 無法識別的部分被忽略。我如何診斷哪些部件被識別,哪些不是?診斷Windows應用程序清單
導致這一問題的問題是與具有並排側UAC清單與的一個requestedExecutionLevel highestAvailable指定的應用程序。這應該關閉Vista文件虛擬化,但事實並非如此。我想找出原因。正在使用清單,因爲我通過故意引入語法錯誤進行檢查,但是我看不出如何確定它的使用方式。
Windows應用程序清單的語法非常鬆散 - 無法識別的部分被忽略。我如何診斷哪些部件被識別,哪些不是?診斷Windows應用程序清單
導致這一問題的問題是與具有並排側UAC清單與的一個requestedExecutionLevel highestAvailable指定的應用程序。這應該關閉Vista文件虛擬化,但事實並非如此。我想找出原因。正在使用清單,因爲我通過故意引入語法錯誤進行檢查,但是我看不出如何確定它的使用方式。
見我來Wylder評論 - 你嘗試更新可執行&清單的時間戳?
「sxstrace」在提升的命令提示符下運行返回什麼?
你可以在哪裏發佈你的清單嗎?
我會通過documentation審查,以確保它符合規範,但除此之外,就我所知,沒有一個自動化工具可以做同樣的事情。
我有類似的問題:任務管理器顯示虛擬化已啓用 正在運行的應用程序,儘管應用程序表現爲highestAvailable。我嘗試使用mt.exe來顯示我的文件。它對一些有效,但對別人沒有幫助。這種奇怪的行爲讓我覺得Vista中有一些持久性緩存會影響基於exe時間戳的UAC信息。解決方案是使用Resource Tuner的清單向導。
有一個緩存。
SxS激活上下文緩存緩存.manifest文件。
從我讀過它理應只緩存清單的存在。
它是基於內存並清除只有在重新啓動 - 但是,我知道其實它並不總是清晰的重啓和許多其他報告這一點。我找到了c:\ windows \ sxs \ manifestCache,並懷疑它是否真的在重新啓動時從那裏重新加載。
給力的唯一方法是改變.exe文件的修改日期。
編輯清單時,也becareful,如果不提升你的編輯器,這將是虛擬化UAC - 系列課程的虛擬副本由裝載機忽略。
參考文獻: http://blogs.msdn.com/b/junfeng/archive/2006/10/25/touch-the-exe-after-you-added-a-manifest-for-it-in-vista.aspx http://blogs.msdn.com/b/junfeng/archive/2007/10/01/vista-activation-context-cache.aspx
感謝。我閱讀了MSDN文章以及「Windows Vista開發者故事」文檔。我想,最重要的是,它讓我感到困擾,這個應用程序中這個相當重要的部分是人爲編輯的,但看起來不能被調試。 – 2009-04-15 04:18:19
這是不幸的,但最好的你可以希望的是第三方語法檢查器(這將有自己的解析錯誤) – lfaraone 2009-04-15 22:54:03
問題中提到了具體問題,但它除了感興趣的主要問題之外。 :) – 2009-04-16 22:08:18