2010-03-13 48 views
1

我嵌入清單在.NET exe文件,以便它可以請求Vista和Windows 7提升權限,我使用清單如下:.NET嵌入清單崩潰XP

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity version="1.0.0.0" name="ElevationTest" type="win32"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator"/> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

它在Vista和Windows 7中按預期工作,但會使標準的「...遇到問題並需要關閉...」的XP崩潰。如果我沒有嵌入任何清單,那麼它會按預期工作,但顯然不會在Vista和Windows 7中擁有所需的權限。

什麼是生成exe的標準方式,它將在XP中以正確的權限運行並且Vista/Windows 7?

謝謝你,艾倫

+0

我有同樣的問題 - 兼容性清單不允許在Windows XP SP2上運行兩次我的應用程序 –

回答

1

我認爲清單可能是一個紅色的鯡魚。我剛剛創建了一個嵌入了清單的控制檯應用程序,面向.NET 2.0,它在XP SP3上運行愉快。

您是否嘗試過在沒有嵌入清單的情況下在XP上運行應用程序?另外,你打算使用哪種版本的.NET,它是什麼類型的.NET應用程序(WPF,WinForms,服務等),最後(我必須問),是在該XP機器上安裝的.NET的正確版本?

+0

感謝您的回覆John。 是的,我試圖運行應用程序沒有清單嵌入和它的作品。 我使用WinForms應用程序將.NET 2.0 SP1作爲目標。 在XP機器上安裝了正確的.NET版本。有關信息,我正在運行XP SP2而不是SP3。 Alan –

+0

嗯。如果您創建新的WinForms應用程序,應用清單並嘗試在XP機器上運行該應用程序,會發生什麼情況?這次對XP SP2進行了測試,但對我來說仍然沒有崩潰。如果它確實崩潰了,那麼我建議修復.NET(我以前見過.NET的行爲非常奇怪,而修復通常會將其排除)。如果沒有,你是否試過在不同的XP盒子上運行?否則,你是否添加了一個新的處理程序到Application.ThreadException來捕獲未處理的異常並查看是否可以捕獲崩潰並獲取調用堆棧? –

+0

嗨,約翰。 經過更多的實驗後,我發現了事故的原因。我正在申請一個強大的名字給我的exe。清單和強名稱的結合導致了崩潰。對我而言,強命名並不重要,因此我已將其關閉。 再次感謝您的幫助。 Alan –