Обновление MinimumRequiredVersion
Автоматически
Введение в редактор проектов
В обозревателе решений щелкните правой кнопкой мыши свой проект и выберите выгрузить проект.
Как только проект станет недоступным, снова щелкните правой кнопкой мыши и выберите edit <project_name>.<lang>
proj.
Введение в MSBuild
Свойства используют пары ключ / значение для извлечения информации
- Используя имя свойства в качестве псевдонима, вы можете использовать
$(OutputPath)
, чтобы получить значение для элемента <OutputPath>.\bin</OutputPath>
Мы будем использовать следующие свойства, созданные для развертывания ClickOnce * В проекте можно указать 1038 *
<MinimumRequiredVersion>1.0.0.6</MinimumRequiredVersion>
<ApplicationRevision>7</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
MSBuild Tasks
(* .proj) и вызывается во время события сборки.
FormatVersion
- это встроенная задача для .NET 4.0 и более поздних версий, которая форматирует ApplicationVersion и ApplicationRevision вединый номер версии.
Реализация
Скопируйте и вставьте следующий код в открытый файл проекта в качестве дочернего элемента к корневому элементу <Project>
.
<Target Name="AutoSetMinimumRequiredVersion" BeforeTargets="GenerateDeploymentManifest">
<FormatVersion Version="$(ApplicationVersion)" Revision="$(ApplicationRevision)">
<Output PropertyName="MinimumRequiredVersion" TaskParameter="OutputVersion" />
</FormatVersion>
<FormatVersion Version="$(ApplicationVersion)" Revision="$(ApplicationRevision)">
<Output PropertyName="_DeploymentBuiltMinimumRequiredVersion" TaskParameter="OutputVersion" />
</FormatVersion>
</Target>
Этот код примет ApplicationVersion и ApplicationRevision в качестве параметров в формате Format.Задача версии и сохранит вывод, переписав MinimumRequiredVersion с полной версией публикации.
Сохраните и перезагрузите проект.Каждое развертывание ClickOnce теперь будет автоматически обновляться до последней опубликованной версии.
Большое спасибо Kev за их ответ , который я в основном перефразировалздесь с небольшим количеством добавленных разъяснений для любых начинающих. Вот сообщение в блоге Я сделал о проблеме, которая еще больше раскрывается в моем ответе здесь.