2016-08-02 4 views
0

В настоящее время у меня есть файл VersionInfo.cs, который содержит следующее.C# присвоить номер версии через переменную окружения

using System.Reflection; 
using System.Runtime.CompilerServices; 
using System.Runtime.InteropServices; 

//Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Version 
//  Revision 
// 
//You can specify all the values or you can defaul the Revision and Build Numbers 
//by using the '*' as shown below: 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

Этот файл добавляется в качестве ссылки на все проекты в моем решении, поэтому обновление номер версии в одном, обновляет все. Это прекрасно работает.

Но мне интересно, можно ли получить номер версии из переменной окружения, а затем использовать ее в файле VersionInfo.cs ?. Это можно сделать в файле VersionInfo.cs ?.

Я искал что-то вроде этого и до сих пор ничего не получил.

+0

Существует еще одна тема. Это может быть помощь. http://stackoverflow.com/questions/650/automatically-update-version-number –

ответ

0

Похоже, это невозможно сделать внутри VersionInfo.cs. Несмотря на то, что в C# можно передавать специальные символы (см. Также MSDN Article), они не могут содержать значение, в отличие от символов C/C++.

Однако, конечно, можно генерировать VersionInfo.cs алгоритмически с помощью, например, еще одной простой программы на C#. Во-первых, напишите программу, которая изменяет VersionInfo.cs с информацией, полученной из другого источника, вероятно, из метода вызова Environment.GetEnvironmentVariable. Затем добавьте команду pre-build в сборку вашего проекта. Подробнее о том, как это сделать, см. На странице MSDN article. В событии pre-build вызовите свою программу, чтобы она обновляла VersionInfo.cs перед вызовом компилятора.

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