相关疑难解决方法(0)

如何将SVN修订号与我的ASP.NET网站同步?

Stack Overflow底部有一个subversion版本号:

svn修订版:679

我想在我的.NET Web Site/ApplicationWindows窗体,WPD项目/解决方案中使用这种自动版本控制.

我该如何实现?

.net svn versioning asp.net

91
推荐指数
7
解决办法
8095
查看次数

在.Net dll中嵌入git commit hash

我正在构建一个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 shell脚本,位于:path_to_project\.git\hooks下
  • 如果您使用的是msysgit,则hooks文件夹中已包含一些示例脚本.为了让git调用它们,从脚本名称中删除".sample"扩展名.
  • 钩子脚本的名称与调用它们的事件匹配.就我而言,我修改后提交合并后.
  • 我的AssemblyInfo.cs文件直接位于项目路径下(与.git文件夹相同).它包含23行,我使用git生成第24行.

由于我的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)

c# git

84
推荐指数
7
解决办法
3万
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

git ×1

svn ×1

versioning ×1