在VS 2015中发布之前运行texttransform实用程序

时间:2017-01-26 09:06:12

标签: c# visual-studio

我使用模板作为自动增量版本,如

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Text.RegularExpressions" #>
<#@ output extension=".cs" #>
<#
     int major = 10; 
     int minor = 25; 
     int build = 0; 
     int revision = 0; 

     try
     {
         string text = File.ReadAllText(Host.ResolvePath("assemblyversioninfo.cs"));

         if(!string.IsNullOrWhiteSpace(text)) {
            Regex regex = new Regex( "\\[assembly: AssemblyFileVersion\\(\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"\\)\\]" );
            Match match = regex.Match(text);

             if ( match.Success ) {
               string version = match.Groups[1].Value;
               string[] split = version.Split('.');

               string maj = split[0];
               string min = split[1];
               string b = split[2];
               string r = split[3];

               int majNumber;
               int minNumber;
               int revNumber;
               int buildNumber;

               int.TryParse(maj, out majNumber);
               int.TryParse(min, out minNumber);
               int.TryParse(b, out buildNumber);
               int.TryParse(r, out revNumber);

               revNumber++;

               if(revNumber >= 5) {
                  buildNumber++;
                  revNumber = 0;
               }

               if(buildNumber >= 5){
                  minNumber++;
                  buildNumber = 0;
               }

               major = majNumber; 
               minor = minNumber; 
               build = buildNumber; 
               revision = revNumber; 
             }
         }
     }
     catch
     {
         major = 1; 
         minor = 0; 
         build = 0; 
         revision = 0; 
     }
 #>



using System.Reflection;
[assembly: AssemblyFileVersion("<#= major #>.<#= minor #>.<#= build #>.<#= revision #>")]

预构建事件我写道:

"$(DevEnvDir)tf.exe" checkout "..\assemblyversioninfo.cs"
set textTemplatingPath="%CommonProgramFiles(x86)%\Microsoft Shared\TextTemplating\$(VisualStudioVersion)\texttransform.exe"
if %textTemplatingPath%=="\Microsoft Shared\TextTemplating\$(VisualStudioVersion)\texttransform.exe" set textTemplatingPath="%CommonProgramFiles%\Microsoft Shared\TextTemplating\$(VisualStudioVersion)\texttransform.exe"
%textTemplatingPath% "..\assemblyversioninfo.tt"

我的问题:在发布网站之前可以执行上面的代码吗?

由于

0 个答案:

没有答案