如何根据tfs项目内部版本号设置AssemblyInfo.cs?

时间:2014-05-30 15:52:45

标签: c# asp.net tfs visual-studio-2013 tfsbuild

项目托管在tfs服务器上,我需要访问构建号,我假设在构建项目时自动生成。

我需要检索该内部版本号并将其显示在网页上,以便QA和测试人员确切地知道他们正在使用哪个版本。

我找到了如何在以下链接中创建自定义构建号码: http://msdn.microsoft.com/en-us/library/aa395241(v=vs.100).aspx

但由于我无法访问构建定义文件,因此无法解决我的问题。

我正在寻找某种可以访问内部版本号的部署后任务,或者可能会生成一个部署任务,并可能将其写入文件,我可以从中读取它。我不知道这是否有意义,因为这是我第一次使用.Net

4 个答案:

答案 0 :(得分:3)

你可以这样做:

Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;

或者如果你有多个组件,那么你可以使用

Assembly.GetAssembly(typeof(SomeObject))

在要获取版本的程序集中声明SomeObject

答案 1 :(得分:1)

所以这就是我最终实现它的方式感谢John和mclaassen。

在我的AssemblyInfo.cs中,我做了以下更改:

之前:

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

后:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]

然后我写了一个辅助类,可以使用get方法访问AssemblyVersion编号。

public string GetVersion() 
{
    string version ;
    version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
    return version;
}

所以当我调用这个方法的时候,它给了我一个字符串,它只是我的版本号。

答案 2 :(得分:0)

TFS Versioning是一个很好的扩展来做到这一点!

答案 3 :(得分:0)

您最好使用TFS社区构建工具中的TFS版本活动。此工具自动从构建名称中获取版本号,并且可以轻松配置为在get之后和编译之前更新AssemblyInfo。*文件。

在所有工具中,这是最受支持的工具。我发现任何其他人都过于复杂。我已经在许多客户的数百个构建中使用了它。