看一看從米哈伊Cadariu這兩個博客文章:
有了這兩個,你應該能夠找到你需要的東西。
你在TBB所需要的基本功能是這樣的:
public PublishTransaction GetPublishTransaction(Engine engine)
{
String binaryPath = engine.PublishingContext.PublishInstruction.
RenderInstruction.BinaryStoragePath;
Regex tcmRegex = new Regex(@"tcm_\d+-\d+-66560");
Match match = tcmRegex.Match(binaryPath);
if (match.Success)
{
String transactionId = match.Value.Replace('_', ':');
TcmUri transactionUri = new TcmUri(transactionId);
return new PublishTransaction(transactionUri, engine.GetSession());
}
return null;
}
它也可能是值得指出的是,呈現在PreviewMode或從模板生成器編碼器時相比,當地產engine.PublishingContext.PublishInstruction.RenderInstruction.BinaryStoragePath
將返回不同的東西該代碼正在發佈服務器中運行。要查看BinaryStoragePath中的PublishTransaction URI,必須將Visual Studio TBB Debug項目附加到TcmPublisher.exe
進程中,以便實際上存在PublishTransaction對象,否則BinaryStoragePath將只包含像../preview這樣的通用路徑。
很好,我添加了Mihai和Chris的代碼,現在我有了PublishTransaction - 非常感謝 – GourmetCMS 2012-07-27 02:02:42