项目托管在tfs服务器上,我需要访问构建号,我假设在构建项目时自动生成。
我需要检索该内部版本号并将其显示在网页上,以便QA和测试人员确切地知道他们正在使用哪个版本。
我找到了如何在以下链接中创建自定义构建号码: http://msdn.microsoft.com/en-us/library/aa395241(v=vs.100).aspx
但由于我无法访问构建定义文件,因此无法解决我的问题。
我正在寻找某种可以访问内部版本号的部署后任务,或者可能会生成一个部署任务,并可能将其写入文件,我可以从中读取它。我不知道这是否有意义,因为这是我第一次使用.Net
答案 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。*文件。
在所有工具中,这是最受支持的工具。我发现任何其他人都过于复杂。我已经在许多客户的数百个构建中使用了它。