我们使用从文件路径安装的ClickOnce部署我们的应用程序。对于24个版本,它一直运行良好 - 现在,在版本25上,一旦应用程序安装并启动它,我会收到以下错误:
alt text http://i49.tinypic.com/zk4krl.png
如果我在同一台机器上测试以前的部署,它就可以工作。
我在哪里可以开始寻找找出此错误的原因?我已经检查了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发布,没有进行手动清单编辑。
答案 0 :(得分:9)
我想我已经确定了这个问题,虽然我不知道它是怎么发生的。比较当前项目文件与显示其他变化的工作版本之间的差异:
来自:
<GenerateManifests>true</GenerateManifests>
到此:
<GenerateManifests>false</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
如果我删除TargetZone和ApplicationManifest,并将GenerateManifests设置为false - 它可以正常工作。
答案 1 :(得分:2)
您是否将应用程序从完全信任更改为部分信任?这就是它的样子。 Intranet区域是部分信任安全性的一部分。查看项目属性页面的“安全”选项卡。
其次,在“图标和清单”的项目属性页的“应用程序”选项卡中 - 清单字段的值是多少?是否在没有清单的情况下创建应用程序?尝试将其设置为“使用默认设置嵌入清单”,看看是否有帮助。
答案 2 :(得分:1)
ClickOnce仅在应用程序为TRUSTED APPLICATION(s。属性 - >安全性)时才能正常工作,并且清单不包含任何更高的UAC安全要求,如下面的manfest文件:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MaxLine5651v1" type="win32" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
当您拥有要求更高权限的清单时,ClickOnce将不接受发布您的项目。
我也在这方面苦苦挣扎。我需要一个应用程序来访问注册表,日志和防火墙设置;我希望它可以在线更新。不幸的是,它不适用于ClickOnce。欢迎任何想法。
- 格克
答案 3 :(得分:0)
根据MSDN,您可以查看日志文件来帮助您。 还有一个Troubleshooting ClickOnce Deployments页面可以帮助您。
答案 4 :(得分:0)
在检查新版本时看起来它崩溃了,因为你说它在更新后发生了
很难说,因为窗口错误报告的东西似乎永远不会提供有用的信息,但我打赌你会在那里好运。我经常这样做。
另外,我知道这不太可能,因为它引用了system.security你是否改变了什么,这个转换的网络文件夹上的烫发是否相同,你是否添加了任何安全要求?
答案 5 :(得分:-1)
我们对我们的应用程序进行了一些小改动,我们不知道该应用程序停止运行。经过大量时间尝试调试ClickOnce问题后,我最终尝试自行运行应用程序并发现问题。
在这种情况下,错误消息具有误导性。