Determine assembly version during a post-build event

后端 未结 10 1564
故里飘歌
故里飘歌 2020-11-27 11:58

Let\'s say I wanted to create a static text file which ships with each release. I want the file to be updated with the version number of the release (as specified in A

10条回答
  •  清酒与你
    2020-11-27 12:33

    This answer is a minor modification of the answer of Brent Arias. His PostBuildMacro worked quite well for me until a version update of Nuget.exe.

    In the recent releases, Nuget trims non significant parts of the package version number in order to obtain a semantic version like "1.2.3". For example, the assembly version "1.2.3.0" is formatted by Nuget.exe "1.2.3". And "1.2.3.1" is formatted "1.2.3.1" as expected.

    As I need to infer the exact package filename generated by Nuget.exe, I use now this adaptated macro (tested in VS2015):

    
      
        
      
      
        
      
    
    
      
        $(PostBuildEventDependsOn);
        PostBuildMacros;
          
      echo HELLO, THE ASSEMBLY VERSION IS: @(VersionNumber)
    
    

    UPDATE 2017-05-24: I corrected the regex in this way: "1.2.0.0" will be translated to "1.2.0" and not "1.2" as previously coded.


    And to answer to a comment of Ehryk Apr, you can adapt the regex to keep only some part of the version number. As an example to keep "Major.Minor", replace:

    
    

    By

    
    

提交回复
热议问题