Dalam pengembangan proyek, versi SVN dapat digunakan sebagai bagian dari nomor versi assembly. Namun, untuk mengakses versi SVN ini, kita perlu memiliki kemampuan untuk mengambil informasi versi SVN dari direktori kerja.
Cara Mengakses Versi SVN di C#
Di bawah ini adalah contoh kode C# yang dapat digunakan untuk mengakses versi SVN menggunakan perintah svn.exe
:
Process process = new Process();
process.StartInfo.FileName = @"svn.exe";
process.StartInfo.Arguments = String.Format(@"info {0}", path);
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
using (StreamReader output = process.StandardOutput)
{
Regex LCR = new Regex(@"Last Changed Rev: (\d+)");
string line;
while ((line = output.ReadLine()) != null)
{
Match match = LCR.Match(line);
if (match.Success)
{
revision = match.Groups[1].Value;
}
}
}
Menggunakan MSBuild Community Tasks
Jika Anda menggunakan MSBuild, Anda dapat menggunakan proyek MSBuild Community Tasks yang menyediakan alat untuk mengambil versi SVN dan menambahkannya ke file AssemblyInfo.vb
. Dengan demikian, Anda dapat menggunakan refleksi untuk mendapatkan string tersebut dan menampilkan di UI.
Menggunakan Plug-in SVN di Build Version Increment
Jika Anda menggunakan Visual Studio, Anda dapat menggunakan plug-in SVN yang tersedia di Build Version Increment. Plug-in ini akan mengambil versi SVN terbaru dari direktori kerja dan memungkinkan Anda untuk menggunakan versi tersebut dalam nomor versi assembly.
Menggunakan Subversion Command
Subversion juga menyediakan perintah svnversion.exe
yang dapat digunakan untuk mengakses versi SVN. Perintah ini dapat dijalankan dari command prompt atau di dalam program C# seperti berikut:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "svnversion.exe";
startInfo.Arguments = "."; // direktori kerja
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
using (Process process = Process.Start(startInfo))
{
using (StreamReader output = process.StandardOutput)
{
string version = output.ReadToEnd();
Console.WriteLine(version);
}
}
}
}
Dalam contoh di atas, perintah svnversion.exe
akan mengakses versi SVN direktori kerja dan menampilkan hasilnya ke console.