Stack Overflow底部有一个subversion版本号:
svn修订版:679
我想在我的.NET Web Site/ApplicationWindows窗体,WPD项目/解决方案中使用这种自动版本控制.
我该如何实现?
我正在构建一个C#应用程序,使用Git作为我的版本控制.
有没有办法在构建应用程序时自动将最后一个提交哈希嵌入可执行文件中?
例如,将提交哈希打印到控制台看起来像:
class PrintCommitHash
{
private String lastCommitHash = ?? // What do I put here?
static void Main(string[] args)
{
// Display the version number:
System.Console.WriteLine(lastCommitHash );
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,这必须在构建时完成,而不是在运行时完成,因为我部署的可执行文件不会访问git repo.
可以在此处找到C++的相关问题.
编辑
Per @ mattanja的请求,我发布了我在项目中使用的git钩子脚本.设置:
由于我的linux-shelling有点生疏,脚本只是将AssemblyInfo.cs的前23行读取到临时文件,将git散列回到最后一行,然后将文件重命名为AssemblyInfo.cs.我确信有更好的方法可以做到这一点:
#!/bin/sh
cmt=$(git rev-list --max-count=1 HEAD)
head -23 AssemblyInfo.cs > AssemblyInfo.cs.tmp
echo [assembly: AssemblyFileVersion\(\"$cmt\"\)] …Run Code Online (Sandbox Code Playgroud)