У меня проблемы с поиском встроенных механизмов в .NET Framework для настройки информации о версии во время сборки. Наши усилия по разработке в первую очередь направлены на приложение WinForms, развернутое с ClickOnce. Для этого у нас уже есть система на месте и работает. Я хотел бы попытаться расширить то, что нам уже нужно для работы с несколькими проектами ASP.NET MVC.
Прежде чем наш CI-сервер начнет создавать наше приложение WinForms, мы откроем файл .csproj и настроим некоторые значения на основе номера сборки CC.NET и текущей версии SVN. Основные и вспомогательные номера версий устанавливаются вручную в конфигурационном файле.
changeNodeValue('ApplicationVersion', version) // Version like "1.0.111.2222"
changeNodeValue('ApplicationRevision', revision) // SVN Revision like "2222"
Итак, у нас есть что-то подобное в общей библиотеке.
if (ApplicationDeployment.IsNetworkDeployed)
return ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
else
return "development";
Это естественно работает в нашем приложении WinForms. Вызов этого метода из приложения, не развернутого ClickOnce (наши веб-проекты), всегда возвращает «развитие».
Есть ли способ, которым я могу сделать то же самое для наших приложений ASP.NET MVC, т. Е. Настроить файлы проекта или создать аргументы для предоставления номера версии .NET?