Tridion:加载程序集'Tridion.ContentDelivery.Interop'时出错

时间:2012-09-18 07:00:06

标签: tridion tridion-2011 tridion-content-delivery

我们正在将VBScript模板转换为.net复合模板,并在使用Broker Query Mechanism时遇到一些问题。

我们的旧代码如下:

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后,我们仍然遇到同样的问题?

我们错过了什么?请帮助。 感谢。

2 个答案:

答案 0 :(得分:4)

如果您需要查询Broker,那么.Net TBB就不是这样做的地方。在您的VBSscript模板中,您似乎一直在为输出编写服务器端代码,这是正确的方法。在您的模块化模板中,您应该采用相同的方法 - 或者写出适当的.Net代码,或者可能是更好的方法,写出.Net控制标记,当由IIS处理时,将直接调用CD API。

答案 1 :(得分:1)

如果您确定bin文件夹中存在Interop dll,我唯一能想到的是它是错误的版本。你能确定DLL的版本是6.1.0.43吗?