我为CC.Net创建了一个自定义贴标机,它几乎完美地工作,但看起来贴标机在构建应用程序之前运行。我对此的问题是我希望我的构建标签是我的AssemblyVersion。
我的贴标机中有以下内容:
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时调用强制构建。
有什么方法可以强制贴标机等到构建过程完成?或者我有没有其他方法可以做到这一点?
答案 0 :(得分:0)
我相信答案是否定的。我所做的是创建我自己的控制台应用程序,在CC.Net的项目配置中的MSBuild任务之前更新assemblyinfo.cs文件。问题(种类)解决了。
答案 1 :(得分:0)
这是大多数人这样做的倒退;你让ccnet设置你的代码和版本的版本;自动装配,从配置中提取版本并说出svn rev#。
这就是贴标机在任务之前运行至关重要的原因。