我使用模板作为自动增量版本,如
<#@ 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"
我的问题:在发布网站之前可以执行上面的代码吗?
由于