Dot-Net
如何診斷“Microsoft .NET ClickOnce Launch Utility 已停止工作”?
我們使用從文件路徑安裝的 ClickOnce 部署我們的應用程序。對於 24 個版本,它一直執行良好 - 現在,在版本 25 上,一旦應用程序安裝並啟動,我會收到以下錯誤:
如果我在同一台機器上測試以前的部署,它就可以工作。
我什至可以從哪裡開始尋找導致此錯誤的原因?我已經檢查了 Windows 事件日誌 - 沒有。
**編輯:**我注意到在顯示對話框時,在我的臨時文件夾中生成了一個臨時 xml 文件“WER561D.tmp.WERInternalMetadata.xml”。這是內容(它可能包含對那些比我更有知識的人有幫助的線索):
<?xml version="1.0" encoding="UTF-16"?> <WERReportMetadata> <OSVersionInformation> <WindowsNTVersion>6.1</WindowsNTVersion> <Build>7600 </Build> <Product>(0x4): Windows 7 Enterprise</Product> <Edition>Enterprise</Edition> <BuildString>7600.16385.x86fre.win7_rtm.090713-1255</BuildString> <Revision>1</Revision> <Flavor>Multiprocessor Free</Flavor> <Architecture>X86</Architecture> <LCID>1033</LCID> </OSVersionInformation> <ProblemSignatures> <EventType>CLR20r3</EventType> <Parameter0>applaunch.exe</Parameter0> <Parameter1>2.0.50727.4927</Parameter1> <Parameter2>4a275abe</Parameter2> <Parameter3>mscorlib</Parameter3> <Parameter4>2.0.0.0</Parameter4> <Parameter5>4a275af7</Parameter5> <Parameter6>4f3</Parameter6> <Parameter7>0</Parameter7> <Parameter8>System.Security.Security</Parameter8> </ProblemSignatures> <DynamicSignatures> <Parameter1>6.1.7600.2.0.0.256.4</Parameter1> <Parameter2>1033</Parameter2> </DynamicSignatures> <SystemInformation> -- removed for privacy reasons -- </SystemInformation> </WERReportMetadata>另一個關鍵點是我通過 Visual Studio 發布,沒有進行手動清單編輯。
我想我已經確定了問題所在,儘管我不知道它是如何發生的。將目前項目文件與工作的版本進行比較,除其他更改外,還顯示了這些差異:
由此:
<GenerateManifests>true</GenerateManifests>對此:
<GenerateManifests>false</GenerateManifests> <TargetZone>LocalIntranet</TargetZone> <ApplicationManifest>Properties\app.manifest</ApplicationManifest>如果我刪除 TargetZone 和 ApplicationManifest,並將 GenerateManifests 設置為 false - 它可以工作。
您是否將應用程序從完全信任更改為部分信任?這就是它的樣子。Intranet 區域是部分信任安全的一部分。查看項目屬性頁面的安全選項卡。
其次,在“圖示和清單”的項目屬性頁的應用程序選項卡中——清單欄位的值是什麼?它是在沒有清單的情況下創建應用程序嗎?嘗試將其設置為“使用預設設置嵌入清單”,看看是否有幫助。
