我为CC.Net创建了一个自定义标签器,它几乎完美地工作,但看起来标签器在构建应用程序之前运行。我遇到的问题是我希望我的构建标签是我的AssemblyVersion的标签。CruiseControl.Net - 贴标机可以在MSBuild之后运行吗?
我在贴标机以下内容:
public string Generate(IIntegrationResult previousResult)
{
if (File.Exists(this.OutputExecutable))
{
Assembly assembly = System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(this.OutputExecutable));
string version = assembly.GetName().Version.ToString();
assembly = null;
return version;
}
else
{
return "0.0.0.0";
}
}
这得到所提供的DLL/EXE的版本,这样我可以用它作为我的版本标签。我稍后可能会继续添加实际的内部版本号,但我只是想先让这一点工作。
问题是我的修订号是格式2.0.93601.254 major.minor.date.svnrevision。当签入发生时,我构建代码库,修订号将变为2.0.93601.255。不幸的是,CC.Net仍然会生成.254的构建标签,直到调用构建版本时才会成功更改为.255。
有什么办法可以强制贴标签机等到构建过程完成?或者还有其他方法可以做到这一点吗?