ClickOnce неправильно обнаруживает сервер формы новой версии - PullRequest
1 голос
/ 05 августа 2010

У меня есть приложение ClickOnce, которое проверяет сервер на наличие новой версии при запуске. Недавно я развернул новую версию (2.0.0.0), оставив старую версию (1.9.9.9) на сервере.

При запуске версии 2 сообщит пользователю, что доступна новая версия, и загрузит 1.9.9.9.

Есть ли причина, по которой это может происходить? Я предполагал, что ClickOnce будет рассматривать только номера версий при принятии решения, является ли версия более новой или нет.

Спасибо

РЕДАКТИРОВАТЬ - это версия для публикации

РЕДАКТИРОВАТЬ ВТОРОЙ

Спасибо за ответы, ребята. Приложение опубликовано Visual Studio. Он поместил в корень файл .application, содержащий следующую информацию:

<assemblyIdentity name="CokeAudit.application" version="2.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="x86" xmlns="urn:schemas-microsoft-com:asm.v1" />

Файл .application, который существует на сервере (который я еще не обновил до новой версии), содержит файл .application в корне, который содержит такие сведения, как:

<assemblyIdentity name="CokeAudit.application" version="1.9.9.9" publicKeyToken="4c4bf139090ca52a" language="neutral" processorArchitecture="x86" xmlns="urn:schemas-microsoft-com:asm.v1" />

Единственное, что я могу видеть, кроме номера версии, это информация об открытом ключе. Может ли это быть из-за того, что в версии 1.9.9.9 мне пришлось отключить подпись приложения, так как истек срок действия сертификата? Это вызвало бы проблему обновления?

На любом этапе я не подписывал приложение действительным «надлежащим» сертификатом - это всегда был тестовый документ, сгенерированный Visual Studio.

Ответы [ 2 ]

3 голосов
/ 05 августа 2010

ClickOnce не просматривает номера версий - он просто просматривает файл манифеста приложения в каталоге верхнего уровня вашего репозитория ClickOnce.Это важно, например, когда вам необходимо выполнить принудительный откат выпуска.

Убедитесь, что манифест приложения на верхнем уровне совпадает с манифестом приложения в каталоге 2.0.0.0 в разделе Файлы приложений - если это не так, просто скопируйте манифест на верхний уровень.

1 голос
/ 06 августа 2010

Как вы публикуете свое приложение? Если вы используете Visual Studio, он поместит новый манифест развертывания (файл приложения) в корень; в противном случае Ричард Данлэп прав, вам придется сделать это самостоятельно.

Другой случай, когда я видел людей, сталкивающихся с этой проблемой, - когда на веб-сервере включено кэширование. (Я думаю, что слышал об этом только на серверах Unix или Apache.)

...