从程序集信息中访问AssemblyVersion编号以在post build事件命令行中使用

时间:2010-06-07 22:17:28

标签: visual-studio

我正在尝试使用visual studio 2008中的post build事件命令行访问程序集信息中的AssemblyVersion和AssemblyFileVersion数字。是否有办法访问该信息,类似于$(TargetName)如何获取项目标题中的宏定义。

1 个答案:

答案 0 :(得分:3)

它们在AssemblyInfo.cs文件中声明并嵌入在$(TargetPath)中。您可以编写一个小工具来重新挖掘它。例如:

using System;
using System.Reflection;

class Program {
    static void Main(string[] args) {
        if (args.Length == 0) throw new Exception("Assembly path required");
        var asm = Assembly.LoadFile(args[0]);
        Console.WriteLine(asm.GetName().Version.ToString());
        var vers = (AssemblyFileVersionAttribute)asm.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)[0];
        Console.WriteLine(vers.Version);
    }
}

构建后事件应该看起来像这样:

c:\bin\myutil.exe $(TargetPath)