如何诊断“Microsoft .NET ClickOnce启动实用程序已停止工作”?

时间:2010-02-10 16:02:50

标签: .net clickonce install launch

我们使用从文件路径安装的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发布,没有进行手动清单编辑。

6 个答案:

答案 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)

在检查新版本时看起来它崩溃了,因为你说它在更新后发生了

  • 您是否尝试过重新发布并删除现有版本,例如ApplicationFiles \ App_1_0_0_1..25?
  • 你有没有在MSDN Forums上向MS报告这个?
  • 代码中有什么变化(新引用等?)

很难说,因为窗口错误报告的东西似乎永远不会提供有用的信息,但我打赌你会在那里好运。我经常这样做。

另外,我知道这不太可能,因为它引用了system.security你是否改变了什么,这个转换的网络文件夹上的烫发是否相同,你是否添加了任何安全要求?

答案 5 :(得分:-1)

我们对我们的应用程序进行了一些小改动,我们不知道该应用程序停止运行。经过大量时间尝试调试ClickOnce问题后,我最终尝试自行运行应用程序并发现问题。

在这种情况下,错误消息具有误导性。

相关问题