我们正在将VBScript模板转换为.net复合模板,并在使用Broker查询机制时遇到一些问题。
我们的旧代码看起来像这样:
sQuery = "query" & nNumber & ".AddCriteria(""schema"",""="", ""1132"");"& vbcrlf
if objFields.Item("FilterBD").Value.Count >0 Then
if objFields.Item("FilterBD").Value(1) = "Yes" Then
sQuery = sQuery & "query" & nNumber & ".AddOperator(Query.QueryOperator.AND_Field);"& vbcrlf
sQuery = sQuery & "query" & nNumber & ".AddCriteria(""categorization"", ""="", ""Broker_Dealer/test"");" & vbcrlf
End If
End If在将其转换为.net时,我们将Tridion.ContentDelivery.DynamicContent dll的引用添加到我们的项目中,以便我们可以将代码(示例)编写为:
using Tridion.ContentDelivery.DynamicContent.Query;
Tridion.ContentDelivery.DynamicContent.Query.Query query = new Tridion.ContentDelivery.DynamicContent.Query.Query();
ItemSchemaCriteria isArticle = new ItemSchemaCriteria(1132);
CategoryCriteria bdCategory = new CategoryCriteria("Broker_Dealer/\" + \"test\"");
Criteria bdCriteria = CriteriaFactory.And(isArticle, bdCategory);
query.Criteria = bdCriteria;到目前为止,这种方法在Visual studio中工作得很好,但在模板生成器中生成CT时,我们收到错误消息“无法加载文件或程序集”“无法加载文件或程序集”“Tridion.ContentDelivery.Interop,Version=6.1.0.43,Culture=neutral,PublicKeyToken=ddfc895746e5ee6b”或其依赖项之一。系统找不到指定的文件。“”
在关注these Steps of registering the dlls in GAC之后,我们仍然收到相同的问题吗?
我们遗漏了什么吗?请帮帮忙。谢谢。
发布于 2012-09-18 16:46:38
如果您需要查询代理,那么.Net TBB不是执行此操作的地方。在VBSscript模板中,您似乎已经在输出中编写了服务器端代码,这是正确的方法。在您的模块化模板中,您应该采用相同的方法--或者写出适当的.Net代码,或者,可能是更好的方法,写出一个.Net控件标记,当它被IIS处理时,将直接调用CD。
发布于 2012-09-18 16:51:56
如果您确定Interop dll存在于bin文件夹中,我唯一能想到的就是它是错误的版本。您能确保DLL的版本是6.1.0.43吗?
https://stackoverflow.com/questions/12471876
复制相似问题