2010-05-14 1 views
5

У меня есть приложение Windows Forms, которое я недавно переписал в WPF, и мне нужно отпустить его для моих конечных пользователей. Я хочу, чтобы пользователи могли перейти к точке установки ClickOnce для приложения WPF и удалить приложение Windows Forms, чтобы на обоих устройствах их не было.Приложение с одним кликом, перемещающееся из Windows Forms в WPF

Каков наилучший способ (читать: проще всего для пользователей) выполнить это?

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

ответ

2

Я думаю, вам действительно удастся развернуть версию WPF как новую версию приложения Windows Forms.

Какая версия .NET Framework предназначена для каждого приложения?

Является ли имя сборки на обоих проектах одинаковым и является ли URL установки одинаковым? (Для ClickOnce это не имеет никакого отношения к projectGUID.)

1

Я не пробовал, но не могли бы вы сделать свое приложение WPF напрямую заменяющим ваше приложение WinForms? Если вы публикуете в той же папке, скопируйте правильный GUID из старого проекта в новый проект, он может просто установить без проблем.

Это не удалит старые версии, но каждое обновление приложения ClickOnce оставляет старые версии на месте.

В качестве альтернативы, вы можете преобразовать существующий проект WinForms в проект WPF? Это просто другой набор ссылок на сборку? Я никогда не писал приложение WPF, так что простите меня, если это явно неправильно.

0

Почему бы просто не дать новому приложению WPF те же <ProjectGuid>, <PublishUrl> и т. Д. И более высокий номер главной версии?

ClickOnce даже не будет знать, что вы переключились с WinForms на технологию WPF.

Стандартная функциональность обновления версии ClickOnce автоматически заменит старый код новым при следующем обновлении приложения (которое может быть установлено автоматически при необходимости).

+0

Я попробовал это, и приложение WinForm не представило диалоговое окно обновления. Когда я запустил приложение WPF, он был установлен вместе с приложением WinForm. Знаете ли вы, какие части нужно копировать из проекта в проект, чтобы убедиться, что он имеет идентичность? – Tyler

+0

Моя память была туманной, поэтому я попробовал несколько экспериментов, чтобы подтвердить. Похоже, что если новый проект имеет одно и то же имя сборки и подписан с одним и тем же открытым ключом, он будет иметь тот же идентификатор ClickOnce. Вы уверены, что используете один и тот же сертификат для подписи обоих проектов, и оба проекта имеют одно и то же имя? Если это было проверено, я попытался бы скопировать настройки в AssemblyInfo.cs, начиная с '' и '' в .csproj. Надеюсь, один из них сделает трюк. –

 Смежные вопросы

  • Нет связанных вопросов^_^