2009-04-12 62 views
5

Windows應用程序清單的語法非常鬆散 - 無法識別的部分被忽略。我如何診斷哪些部件被識別,哪些不是?診斷Windows應用程序清單

導致這一問題的問題是與具有並排側UAC清單與的一個requestedExecutionLevel highestAvailable指定的應用程序。這應該關閉Vista文件虛擬化,但事實並非如此。我想找出原因。正在使用清單,因爲我通過故意引入語法錯誤進行檢查,但是我看不出如何確定它的使用方式。

回答

4

見我來Wylder評論 - 你嘗試更新可執行&清單的時間戳?
「sxstrace」在提升的命令提示符下運行返回什麼?
你可以在哪裏發佈你的清單嗎?

0

我會通過documentation審查,以確保它符合規範,但除此之外,就我所知,沒有一個自動化工具可以做同樣的事情。

+0

感謝。我閱讀了MSDN文章以及「Windows Vista開發者故事」文檔。我想,最重要的是,它讓我感到困擾,這個應用程序中這個相當重要的部分是人爲編輯的,但看起來不能被調試。 – 2009-04-15 04:18:19

+0

這是不幸的,但最好的你可以希望的是第三方語法檢查器(這將有自己的解析錯誤) – lfaraone 2009-04-15 22:54:03

+0

問題中提到了具體問題,但它除了感興趣的主要問題之外。 :) – 2009-04-16 22:08:18

4

我有類似的問題:任務管理器顯示虛擬化已啓用 正在運行的應用程序,儘管應用程序表現爲highestAvailable。我嘗試使用mt.exe來顯示我的文件。它對一些有效,但對別人沒有幫助。這種奇怪的行爲讓我覺得Vista中有一些持久性緩存會影響基於exe時間戳的UAC信息。解決方案是使用Resource Tuner的清單向導。

3

有一個緩存。

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

相關問題