Как диагностировать «Программа запуска Microsoft .NET ClickOnce перестала работать» - PullRequest
8 голосов
/ 10 февраля 2010

Мы разворачиваем наше приложение, используя ClickOnce, установленный из пути к файлу. Для 24 версий он работал отлично - теперь, в версии 25 я получаю следующую ошибку после установки приложения и его запуска:

alt text

Если я тестирую предыдущее развертывание на той же машине, оно работает.

Где я могу начать искать причину этой ошибки? Я уже проверил журналы событий 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 ]

9 голосов
/ 10 февраля 2010

Я думаю, что идентифицировал проблему, хотя я не знаю, как это случилось. Сравнение текущего файла проекта с версией, которая работала, показывая, среди прочего, следующие различия:

из этого:

<GenerateManifests>true</GenerateManifests>

к этому:

<GenerateManifests>false</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>

Если я удаляю TargetZone и ApplicationManifest и устанавливаю для GenerateManifests значение false - это работает.

2 голосов
/ 06 мая 2010

Изменили ли вы приложение с полного доверия на частичное доверие? Вот как это выглядит. Зона интрасети является частью системы безопасности с частичным доверием. Посмотрите на вкладке Безопасность страниц свойств вашего проекта.

Во-вторых, во вкладке «Приложения» страниц свойств вашего проекта «Значок и манифест» - какое значение имеет поле манифеста? Это создать приложение без манифеста? Попробуйте установить для него «Вставить манифест с настройками по умолчанию» и посмотрите, поможет ли это.

1 голос
/ 05 мая 2010

ClickOnce работает правильно только тогда, когда приложение является ДОВЕРЕННЫМ ПРИЛОЖЕНИЕМ (s. Properties-> Security), и манифест НЕ включает в себя более высокие требования безопасности 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. Любые идеи приветствуются.

- Gokhan

0 голосов
/ 13 декабря 2013

Мы внесли небольшое изменение в наше приложение, которое, нам неизвестно, остановило запуск приложения. После большого количества времени, потраченного на отладку проблем ClickOnce, я в конце концов попытался запустить приложение самостоятельно и обнаружил проблему.

В этом случае сообщение об ошибке вводило в заблуждение.

0 голосов
/ 10 февраля 2010

Похоже, что происходит сбой при проверке новой версии, поскольку вы говорите, что это происходит после обновления

  • Вы пытались переиздать и удалить существующую версию, например, ApplicationFiles \ App_1_0_0_1..25?
  • Вы сообщили об этом MS на форумах MSDN для C1?
  • что изменилось в коде (новые ссылки и т. Д.)

Трудно сказать, так как в Windows Error Reporting, похоже, никогда не дается полезная информация, но держу пари, что вам повезет. Я обычно делаю.

Кроме того, и я знаю, что это маловероятно, поскольку оно ссылается на system.security. Изменили ли вы что-нибудь, одинаковые ли параметры в сетевой папке для этой версии, и вы добавили какие-либо требования безопасности?

0 голосов
/ 10 февраля 2010

Согласно MSDN , вы можете посмотреть файлы журналов, чтобы помочь вам. Существует также страница Устранение неполадок ClickOnce Deployments , которая может вам помочь.

...