Intereting Posts
Блокировка зависает при вызове из интерфейса пользователя в System.Threading.Thread Идентификатор маркера OAuth. Аутентификация не проходит проверку подлинности подписи. Какие хорошие неанглийские фразы с единственными и множественными формами, которые можно использовать для тестирования библиотеки интернационализации и локализации? Приложение C # Console – как рисовать BMP / JPG-файл с помощью GDI +? модульное тестирование асинхронной работы Как форматировать мой экспорт в excel workbook в microsoft.office.interop.excel? Как перехватывать пакеты, отправленные приложением, и проверять их заголовок и контент? Как использовать ключевое слово foreach для пользовательских объектов в C # Комплексный сортировочный список путем вхождения слова LINQ C # Шрифт очень уродливый LINQ to Entities не распознает метод Int32 BinaryFormatter.Deserialize «не удалось найти сборку» после ILMerge Найдите элементы в списке, которые вместе суммируют до целевого номера Как я могу обернуть текст на ярлыке с помощью WPF? asp.net mvc highchart linegraph json

Как обеспечить, чтобы мое развертывание приложений winform перезаписывало старые версии

Я создал пакет установки msi для моего проекта из проекта развертывания VS2008. но у меня возникают проблемы при обновлении установок. Ранее установленная версия не перезаписывается. Как я могу гарантировать, что ранее установленные версии будут перезаписаны?

  1. В Visual Studio выберите проект установки в обозревателе решений
  2. Откройте окно свойств
    • не щелкните правой кнопкой мыши и выберите свойства.
    • выберите «Вид» – окно «Свойства»
  3. установите RemovePreviousVersions в true
  4. увеличьте версию до большего числа
  5. выберите «да» в появившемся окне сообщения

Если вы построили и развернули эту новую установку, установка с более старым номером версии будет удалена.

Важно: номер версии установки полностью не зависит от вашего номера приложения или версии сборки!

(Ответ Оливера верен, но я хотел добавить фотографии и некоторые подробности)

Выберите проект установки в своем решении , затем откройте панель « Свойства» (вкладка рядом с панелью инструментов):

введите описание изображения здесь

  • Убедитесь, что DetectNewerInstalledVersion имеет значение true (это значение по умолчанию)
  • Установите InstallAllUsers в true
  • Установите RemovePreviousVersions в true
  • Обновите номер Version и нажмите Enter.
  • После того, как вы нажмете Enter, Visual Studio спросит, хотите ли вы генерировать новый GUID для ProductCode , нажмите «Да»

Кроме того, вам необходимо обновить номера версий для каждого проекта в своем решении , поскольку установщик будет заменять только DLL, если их номер версии был увеличен:

  • Откройте AssemblyInfo.cs каждого проекта и обновите номера AssemblyVersion и AssemblyFileVersion

Или лучший способ:

  • Удалите AssemblyVersion и AssemblyFileVersion из каждого проекта AssemblyInfo.cs
  • Ссылка на файл VersionInfo.cs в вашем решении с этими двумя строками
  • Шаг за шагом для вышесказанного: правильный путь для создания ваших ассемблий

Щелкните правой кнопкой мыши проект установки и выберите « Свойства» (другое диалоговое окно « Свойства »):

  • Задайте установщик Windows 4.5 как предварительное условие, а не стандартную установку Visual Studio установщика Windows 3.1

Я не уверен, что все эти шаги необходимы, и могут быть другие способы установить это, но приведенные выше шаги работают для меня.

Установщик Windows имеет встроенные проверки ваших файлов, чтобы убедиться, что версия выше, чем предыдущая версия этого файла. Если это не так, установщик Windows не перезапишет его. Для получения более подробной информации о том, как Windows Installer обрабатывает проверку версий, ознакомьтесь с этой статьей MSDN:

http://msdn.microsoft.com/en-us/library/aa368599%28VS.85%29.aspx

Нам нужно установить свойство REINSTALLMODE нашего файла msi на amus.

Ниже приведена ссылка, чтобы узнать больше о значении «amus» http://msdn.microsoft.com/en-us/library/aa371182%28VS.85%29.aspx

Есть два способа сделать это.

  1. Используя msiexec.exe, который поставляется с .NET SDK (если у вас есть VS 2005 или VS 2008, он будет с ним, просто просмотрите командную строку визуальной студии, и вы найдете ее там)

как только вы найдете msiexec.exe, просто введите следующую команду, чтобы установить свойство REINSTALLMODE в amus для вашего установщика.

msiexec.exe / i foo.msi REINSTALLMODE = amus