Используя Visual Studio и C #, вы можете на этапе Pre-Built вызвать команду SubWCRev
с файлом шаблона, который будет скопирован в файл, используемый в решении.
Команда на этапе предварительной сборки:
<PreBuildEvent>SubWCRev "$(ProjectDir)\" "$(ProjectDir)VersionProvider.template.cs" "$(ProjectDir)VersionProvider.cs"</PreBuildEvent>
В рамках проекта добавьте следующие два файла:
<Compile Include="VersionProvider.cs">
<DependentUpon>VersionProvider.template.cs</DependentUpon>
</Compile>
<None Include="VersionProvider.template.cs" />
С этим содержимым:
internal static class VersionProvider
{
/// <summary>
/// Provides the current subversion revision number
/// </summary>
internal const string CurrentSVNRevision = "$WCREV$";
}
Последнее, но не менее важное, в AssemblyInfo.cs добавьте следующую строку:
[assembly: AssemblyInformationalVersion(VersionProvider.CurrentSVNRevision)]
Таким образом, проект автоматически получит текущий номер редакции Subversion этой папки проекта, вставленный в информацию о версии приложения, которая можетможно увидеть на странице сведений о свойствах файла.
Вы также можете получить эту информацию через код во время выполнения:
private string GetAdditionalVersionInfo()
{
var assembly = Assembly.GetEntryAssembly();
var attributesFound = assembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), true);
var version = attributesFound.OfType<AssemblyInformationalVersionAttribute>().FirstOrDefault();
return version != null ? version.InformationalVersion : String.Empty;
}