Ошибка развертывания приложения ClickOnce - ссылка в манифесте не соответствует идентификатору загруженной сборки - PullRequest
90 голосов
/ 17 марта 2011

Я пытаюсь развернуть приложение ClickOnce, но на клиенте происходит сбой установки.Вот журнал ошибок:

PLATFORM VERSION INFO
Windows             : 6.1.7601.65536 (Win32NT)
Common Language Runtime     : 4.0.30319.1
System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll             : 4.0.30319.1 (RTMRel.030319-0100)
dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
Deployment url          : http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application
                    Server      : Microsoft-IIS/7.5
                    X-Powered-By    : ASP.NET
Deployment Provider url     : http://MyProduct.com/Download/Workstation/MyProduct%20Front%20Desk.application
                    Server      : Microsoft-IIS/7.5
                    X-Powered-By    : ASP.NET
Application url         : http://MyProduct.com/Download/Workstation/Application%20Files/MyProduct%20Front%20Desk_1_0_0_7/MyProduct%20Front%20Desk.exe.manifest
                    Server      : Microsoft-IIS/7.5
                    X-Powered-By    : ASP.NET

IDENTITIES
Deployment Identity     : MyProduct Front Desk.application, Version=1.0.0.7, Culture=neutral, PublicKeyToken=df343a0868ab2d74, processorArchitecture=msil
Application Identity        : MyProduct Front Desk.exe, Version=1.0.0.7, Culture=neutral, PublicKeyToken=df343a0868ab2d74, processorArchitecture=msil, type=win32

APPLICATION SUMMARY
* Installable application.

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application resulted in exception. Following failure messages were detected:
    + Reference in the manifest does not match the identity of the downloaded assembly MyProductSiteServer.exe.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [03/17/11 11:51:04] : Activation of http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application has started.
* [03/17/11 11:51:04] : Processing of deployment manifest has successfully completed.
* [03/17/11 11:51:04] : Installation of the application has started.
* [03/17/11 11:51:05] : Processing of application manifest has successfully completed.
* [03/17/11 11:51:06] : Found compatible runtime version 4.0.30319.
* [03/17/11 11:51:06] : Request of trust and detection of platform is complete.

ERROR DETAILS
Following errors were detected during this operation.
* [03/17/11 11:51:30] System.Deployment.Application.InvalidDeploymentException (RefDefValidation)
    - Reference in the manifest does not match the identity of the downloaded assembly MyProductSiteServer.exe.
    - Source: System.Deployment
    - Stack trace:
        at System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object sender, DownloadEventArgs e)
        at System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(Object sender, DownloadEventArgs e)
        at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
        at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
        at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
        at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
        at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
        at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
        at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
        at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

Основной исполняемый файл, который мне нужно развернуть, это MyProductFrontDesk.exe, который зависит от MyProductSiteServer.exe - и именно там создается ошибка: «Ссылка вманифест не соответствует идентификатору загруженной сборки MyProductSiteServer.exe. "

Какой манифест необходимо исправить?И как?

Ответы [ 18 ]

1 голос
/ 17 ноября 2015

У меня была такая же проблема, и я попробовал все предыдущие предложенные решения здесь, и все они не работали.

Я исправил ее, изменив местоположение обновления.Из свойств проекта -> Опубликовать -> Обновления .Измените местоположение обновления на опубликованную папку.

0 голосов
/ 08 января 2019

В моей версии Visual Studio 2017 версии 15.6.6 (но, возможно, она была там раньше), я обнаружил, что файлы приложения находятся не в проекте Exe правой кнопкой мыши и публикации, а на вкладке публикации свойств проекта, где вы можно указать, какие файлы приложений вы хотите поместить в установку.

Так что убери те, которые являются проблемой. Если что-то уже установлено на компьютере, на котором будет установлено это приложение, нет никакой причины пытаться переустановить его в любом случае, кроме случаев, когда вам нужна ссылка для его запуска. Если установить то, что уже было на ПК, но в другую папку, это может не сработать. Лучше использовать другие приложения или сборки DLL в том же месте, где они были ранее установлены.

0 голосов
/ 21 февраля 2019

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

Ключ

  • a =Основной проект (проект, который вы хотите опубликовать, например, myProduct)
  • b = Ссылочный проект (например, MyProductSiteServer)

Контрольный список

  1. Перейдите к свойствам -> Приложение -> Ресурсы -> отметьте значки и манифест (для a и b)

  2. Перейдите к свойствам -> Построить: убедитесь, чтои b находятся на одной целевой платформе

  3. Перейдите к свойствам -> Безопасность и убедитесь, что a и b отмечены следующие параметры: «Включить параметры безопасности ClickOnce» и «Это полноеприложение доверия "

  4. Перейдите к свойствам -> Опубликовать: я рекомендую изменить путь к папке публикации

0 голосов
/ 25 июля 2018

Если у вас есть одна основная программа, которая ссылается на другую, вам нужно выполнить трюк «Создать приложение без манифеста» в Программе основной программы:

Проект -> Свойства -> Вкладка приложения -> Ресурсы -> Манифест -> раскрывающийся список «Создать приложение без манифеста»

, а затем переключитесь на свойства проекта указанной программы и повторите процесс.

0 голосов
/ 14 апреля 2018

Я использую mage.exe для генерации моего манифеста. Добавление этого к моему .csproj исправило проблему. Вы также можете попробовать флаг компилятора -nowin32manifest ; Я не проверял это. Я не вижу в Visual Studio 2017 «Создание приложения без манифеста». Я думаю, что это то, что он делает.

<PropertyGroup>
  <NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>

У меня также есть это в моем .csproj:

<GenerateManifests>false</GenerateManifests>
0 голосов
/ 19 декабря 2017

Это интересно. Я просто заново развернул приложение и проблема решена. Возможно повреждение файла из-за сети.

0 голосов
/ 12 июля 2016

У меня была какая-то другая проблема, которую я смог решить, и поэтому я хотел опубликовать. Мои проблемы были в том, что я запускал 3 ветки из TFS. Я обновил элементы управления Telerik в одном из моих филиалов, но не в других. После того, как я обновил элементы управления Telerik во всех трех ветвях и опубликовал их снова, это сработало, и эта ошибка исчезла.

В то время я работал на VS2015.

0 голосов
/ 19 января 2016

Я использую Visual Studio 2012 в Windows 7 и мне нужно опубликовать решение, состоящее из двух проектов.

Как отметил Эдуардо, пометка обоих проектов как ClickOnce и включение Full Trust Application решают проблему.

...