Разница между «Опубликовать ...» в VS и / target: опубликовать в MSBuild? - PullRequest
1 голос
/ 08 июня 2011

Мы пытаемся опубликовать приложение ClickOnce, но мы вынуждены делать это с помощью MSBuild, поскольку мы страдаем от ошибки Visual Studio, когда Visual Studio тупо настаивает на повторном включении «Приложение должно проверять наличие обновлений», что нам не нужно.

Использование MSBuild от этого не страдает, но не выдает тот же вывод, что и в Visual Studio «Опубликовать ...» (несмотря на то, что MSDN говорит).Мы запутываем код в событии после сборки, и MSBuild, кажется, подписывает манифесты приложения в неправильной точке процесса.

Для записи мы используем следующую командную строку MSBuild:

msbuild /t:Publish

Использование MSBuild и включение обфускации дает вывод, но когда я пытаюсь установить приложение из сгенерированных манифестов, я получаю следующую ошибку ClickOnce:

* Activation of http://download.foo.com/Test/Foo.application resulted in exception. Following failure messages were detected:
     + File, Foo.exe, has a different computed hash than specified in manifest.

Отключение запутывания не приводит квыдает эту ошибку, но, очевидно, мы не собираемся публиковать необсуждаемый код.

Я пытался использовать MageUI для повторной подписи манифестов, но, похоже, это не исправить.

Мой вопрос: что Visual Studio делает по-другому?Использует ли он другую цель MSBuild?Если да, то какой?Как я могу исправить проблемы с сертификатом?

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Проблема, вероятно, в запутывании. Можете ли вы попробовать опубликовать приложение и подписать его БЕЗ запутывания и посмотреть, что оно делает?

Также, если вы используете мага: 1. Подпишите манифест приложения (appname.exe.manifest в папке с версиями). 2. Подпишите манифест развертывания (myapp.application) в верхней папке развертывания. 3. При подписании манифеста развертывания обязательно перейдите на вкладку «Ссылка на приложение», нажмите «Выбрать манигест» и повторно выберите манифест приложения в версионной папке, затем подпишите его. Это выглядит глупо, но необходимо подписать манифест развертывания.

0 голосов
/ 21 октября 2014

Я обнаружил, что если вы публикуете, нажимая кнопку «Опубликовать сейчас» на вкладке публикации, состояние «приложение должно проверять наличие обновлений» сохраняется, то есть VS не включает его снова.Тем не менее, если вы публикуете через пункт выпадающего меню, он снова включит проверку.явная ошибка для меня.

...