Intereting Posts
Полноэкранная консоль C #? блоки кода в этом контексте не поддерживаются в asp.net control как передать html в виде строки с помощью wkhtmltopdf? DataGridView: сохранить выбор после изменения источника данных? Как использовать LINQ для поиска всех комбинаций из n элементов из набора чисел? Преобразование файла в двоичный файл в C # Используйте A.CallTo () FakeItEasy по другому методу в том же объекте Как преобразовать XML в словарь Оператор switch с несколькими константными выражениями в c #. Является ли это возможным? async / ждут высокопроизводительные серверные приложения? Внедрение NLog с регистрацией AutofacGeneric Как обрезать огромное изображение Почему ограничение общего типа приводит к неявной ошибке преобразования ссылок? Web Api + HttpClient: asynchronous модуль или обработчик завершен, пока асинхронная операция еще не выполнена Как использовать SqlBulkCopyColumnMappingCollection?

Как обеспечить, чтобы мое развертывание приложений 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